我有名为 from00到ff(全部小写)的文件夹,其中也有随机数量的随机命名的文件夹。我只需要将里面的文件夹移动到不同的位置。folders = list((range(256)))for i in range(256): folders[i] = hex(folders[i])[2:4] if len(folders[i]) == 1: folders[i] = "0" + folders[i]for i in range(len(folders)): shutil.move(f"D:\folders\{folders[i]\*}", "D:\MainFolder")我期望里面的所有文件都D:\folders\(00)移入D:\Mainfolder并重复,直到所有文件都移入,但它抛出一个错误:OSError: [Errno 22] Invalid argument: 'D:\\folders\\00\\*'另外,有什么方法可以改进我制作数组的方式吗?
2 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
shutil.move
期望得到一个明确的路径作为参数。看来您对glob
可以使用类似 shell 的通配符的路径感到困惑。我假设*
您的意思是移动该文件夹下的任何内容,但这不是必要的。正如文档所述:
递归地将文件或目录 (src) 移动到另一个位置 (dst)
(强调我的)。
作为旁注,您可以folders
通过使用字符串格式更轻松地获取列表:
folders = [f"{hex(i)[2:]:0>2}" for i in range(256)]
或者干脆避免将这样的列表保存在内存中,只需执行以下操作:
for i in range(256): shutil.move(f"D:\folders\{hex(i)[2:]:0>2}", "D:\MainFolder")
添加回答
举报
0/150
提交
取消