我有一个批处理文件,它遍历数百个嵌套目录并将所有文件复制到一个目的地(有效地展平源副本)。我的批处理文件是:
set source="X:\"
set destination="Y:\"
for /R %source% %%f in (*.*) do xcopy "%%f" %destination% /D /Y
Run Code Online (Sandbox Code Playgroud)
非常简单,但可以满足我的需要。现在我需要一个可以在 python 中做同样事情的解决方案。我对 python 很陌生,甚至在理论上也无法弄清楚这是如何工作的。我想我需要 os.walk 遍历所有嵌套文件夹才能找到文件并以某种方式将它们复制出来???任何帮助将不胜感激。通过谷歌,我找到了如何递归地浏览目录以及如何复制文件,但我找不到任何将两者联系在一起的解决方案。我目前使用 python2 (2.7)。
您可以使用os.walk()来获取目录树中所有文件的平面迭代器:
def find_files(root):
for d, dirs, files in os.walk(root):
for f in files:
yield os.path.join(d, f)
Run Code Online (Sandbox Code Playgroud)
现在您可以使用shutil.copy()每个文件将它们复制到目标位置。