将特定文件从目录和子目录复制到新目录Python中

时间:2019-06-18 13:23:01

标签: python copy pattern-matching subdirectory shutil

我是Python的初学者。我想将目录和子目录(使用os.walk)中的特定文件(使用模式匹配和shutil.copy)复制到新目录中。 该代码仅适用于一个子目录中的一个文件,不适用于多个子目录。

通过使用模式匹配和shutil.copy,可以将只有一个子目录中的一个特定文件复制到新目录中。 当我要匹配来自不同子目录的特定文件时,无法将其复制到新目录中。

这是一个子目录中文件的代码:

import os
import shutil
import shutil
from fnmatch import fnmatch

root = r'C:\Users\Fabien.Seychelles\Documents\Projects\Python_weather\Weather_Files'
dest =r'C:\Users\Fabien.Seychelles\Documents\Projects\Python_weather\CSV_converted'

pattern2 = '*TMY*.epw' 

for path, subdirs, files in os.walk(root):
    for filename in files:
        if fnmatch(filename, pattern2):
            shutil.copy(root + '\\'+ filename, dest)

我当时正在考虑使用递归副本或shutil.copytree,但我不确定。

谢谢

1 个答案:

答案 0 :(得分:0)

我猜你在窗户上?

您可以使用子进程或os.system以编程方式调用“ dir”命令并使用输出。您可以使用的标志是

dir /s /b

/ s用于子目录,/ b用于裸输出