如何使用python将所有带有特定前缀的文件复制到新目录中?

2024-09-27 00:21:43 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下目录结构:

C:\Test
C:\Test\2009
C:\Test\2009\files\Artists
C:\Test\2009\files\Artists\SnoopDog
C:\Test\2009\files\Artists\SnoopDog\albums.txt
C:\Test\2009\files\Artists\SnoopDog\albums.jpg
C:\Test\2009\files\Artists\SnoopDog\hobbies.doc
C:\Test\2009\files\Artists\SmashMouth\albums.txt
C:\Test\2009\files\Artists\SmashMouth\hobbies.doc
C:\Test\2010\files\Artists\SnoopDog\albums.txt
C:\Test\2010\files\Artists\SnoopDog\albums.jpg
C:\Test\2010\files\Artists\SnoopDog\hobbies.doc

以下是我希望作为目标的目录结构:

^{pr2}$

假设C:\Test包含所有文件,C:\ToDirectory开始时是一个空目录。在

有一个函数的最有效的方法是什么?我只需给它的源目录C:\Test和目标目录ToDirectory,然后脚本转到C:\Test的最底层,遍历目录中的每个文件,并检查文件名(忽略扩展名)是否是ToDirectory结构中的一个索引,如果不是,创建它并将文件复制到其中,并将父目录附加在其名称开头的python中?在

我正在使用操作系统列表目录以及操作系统isdir在一系列的nexted循环中,但它看起来非常冗长,尽管它能起作用,但似乎效率低下。。。在


Tags: 文件test目录txt目标docfiles结构
2条回答

您可以使用递归而不是显式地嵌套循环来实现更短的代码。在

递归并不总是更有效,但你的代码看起来会更好!。在

尝试pythons高级文件操作库(import shutil

还可以考虑使用pythons优秀的目录遍历功能(from os import walk

您不需要复制文件,只需重命名目录和文件名。在

相关问题 更多 >

    热门问题