在文件夹内移动文件夹

我有名为 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\\*'

另外,有什么方法可以改进我制作数组的方式吗?


交互式爱情
浏览 94回答 2
2回答

海绵宝宝撒

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")

慕盖茨4494581

您需要将命令修复为: shutil.move(f"D:\folders\{folders[i]}\*","D:\MainFolder")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python