最近微信onedrive封停大量的教育账户。在10月之间要求下载备份迁移完资源后关停。目前文件夹都是只读状态,无法删除(提示没有超级管理员权限,主要是onedrive有一个特殊账号接管了,所有的管理员账户都没有权限)。
云端资源下载后,在onedrive客户端,在设置-账户中取消此链接电脑。然后耐心等一段时间后(如果不等就关闭进程,会导致部分文件夹无法删除),就可以彻底变成正常文件夹。
新问题来了,原来云端同步后,释放空间的文件夹,还有本地保留文件的文件夹都混到一起了。一个个删除空文件夹在费时间。
当然可以写个dos批处理bat文件
@echo off
rd/s/q “e:\onedrive-person”
执行时,经常卡住,执行效率太差了。
于是想到用python写个程序,来做这件事吧,上代码:
import os def rm(path1): # 返回当前目录下的内容。文件或文件夹 # print(path) fls = os.listdir(path1) if len(fls)==0: # print('当前文件夹为空') print(f"删除:{path1}") # os.rmdir(path1) return for p in fls: p2 = f'{path1}\\{p}' if os.path.isdir(p2): # print(f'进入{p2}') rm(p2) if os.path.exists(p2) and len(os.listdir(p2)) == 0: # 里面删除后这个可能就是空文件了 print(f"删除:{p2}") os.rmdir(p2) #在这里执行删除 if __name__ == '__main__': rm(os.getcwd()) os.system('pause') # 按任意键退出 ''' # 测试 path = os.getcwd() # 返回当前工作目录 # 删除空目录 os.rmdir(path) # dir = os.path.isdir(path) # 判断是否是目录 files = os.listdir(r'E:\baidu-onedrive\OneDrive - odb') # 自定义目录下的文件或文件夹 print(len(files))'''
执行,可以看进度,很快不卡,一且ok。