我对 python 很陌生,并且我被一段我想要实现的代码所困扰。我希望我能在这里找到一些帮助。
我有一个要复制到一个目录中的特定文件列表。我在互联网上阅读了很多建议,但还没有读到对我来说足够具体的内容。
所以,情况是这样的:我在“FROM”文件夹的不同文件夹中有多个图片文件。我只想将我想要的内容复制到目标文件夹“TO”
目前,这是我所掌握的内容(来自 Stackoverflow 上的另一个主题):
src = "/Volumes/MacintoshHD/TEST_SHUTIL/FROM"
dst = "/Volumes/MacintoshHD/TEST_SHUTIL/TO"
file_names = ["120099.TIFF", "901664.TIFF", "902257.TIFF"]
for file_name in file_names:
full_file_name = os.path.join(src, file_name)
if (os.path.isfile(full_file_name)):
shutil.copy(full_file_name, dst)
我想知道是否有一种方法可以像 isfile 一样查找子文件夹内的文件,但无需测试每个文件夹。
我查看了 copytree,但它看起来对我来说不是很有用......
起初,我想创建一个包含文件及其 url 的字典,但它比预期更复杂(出于多种原因),因此最简单的方法是能够在子文件夹中找到这些文件。
许多坦克
巴特。
最佳答案
这将生成一个列表,其中包含源目录的文件名及其子目录的文件名:
file_names = [os.path.join(dp, f) for dp, dn, fn
in os.walk(src_dir) for f in fn]
然后你可以继续你的代码:
for file_name in file_names:
full_file_name = os.path.join(src, file_name)
if (os.path.isfile(full_file_name)):
shutil.copy(full_file_name, dst)
虽然您必须搜索整个目录树,但只需搜索一次。
关于python - 使用 python 从多个目录复制特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859887/