我想以递归方式将文件添加到具有设置命名方案的目录中。
import os
def all_files(directory):
for path, dirs, files in os.walk(directory):
for f in files:
yield os.path.join(path, f)
xlsm_files = [f for f in all_files('H:\Practice')
if f.endswith('.xlsm')]
print(xlsm_files)
from shutil import copyfile
for i in (xlsm_files):
copyfile(i,'H:/Practice/Crawler Test/i.xlsm')
对于此示例,我有两个名为的文件:name1.xlsm和name2.xlsm。
目前我可以使用xlsm_files [1]和xlsm_files [2]进行单独添加。但是,我想最终拥有100个文件并且单独编写会花费很长时间,更不用说随着列表的增长,我可能无法跟上。
**奖励积分如果我可以学习更进一步阅读H:/ Practice / Crawler Test /,查看其中的文件,并且只让抓取工具找到目前不在的文件。目录
答案 0 :(得分:0)
找到第一个问题的解决方案,仍在处理奖金
import fnmatch
import os
import shutil
rootPath = 'H:\\Practice\\'
destDir = 'C:\Users\******\Downloads\Crawler Test'
matches = []
for root, dirnames, filenames in os.walk(rootPath):
for filename in fnmatch.filter(filenames, '*.xlsm'):
matches.append(os.path.join(root, filename))
a = (os.path.join(root, filename))
print(a)
shutil.copy2(a, destDir)