我正在测试一种将扩展名为'.yaml'的所有文件从一个文件夹(以及所有子文件夹)复制到另一个文件夹的想法。我想出了下面的代码。
import os
import shutil
src = 'C:\\Users\\ryans\\OneDrive\\Documents\\GitHub\\Pipeline\\'
dest = 'C:\\Users\\ryans\\OneDrive\\Desktop\\AllYAML\\'
#src_files = os.listdir(src)
for root, dirs, files in os.walk(src):
for filename in files:
full_file_name = os.path.join(src, filename)
if (os.path.isfile(full_file_name)):
if full_file_name.endswith('.yaml'):
shutil.copy(full_file_name, dest)
在大多数情况下,这似乎是正确的,但它只是将两个扩展名为“ .yaml”的文件从源复制到目标。所有文件夹和子文件夹中都有大约130个文件,因此我知道这里不对,但我不十分清楚问题出在哪里。任何帮助,将不胜感激。
谢谢!
您应该将文件路径与文件名结合起来,而不是将起始路径与文件名结合起来。
更改:
full_file_name = os.path.join(src, filename)
至:
full_file_name = os.path.join(root, filename)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句