我有PDF文件喜欢这个:
9706_s15_qp_12
9706_w15_qp_12
我想根据名字移动文件。例如_s15
至summer 2015
和_w15
至winter 2015
。
我有很多文件。我曾使用shutil.move('C:\\bacon.txt', 'C:\\eggs')
但问题是我必须逐个编写文件名。怎么递归呢?
我使用了这段代码:
import os
import shutil
os.chdir('D:\\Accounting (9706)')
for root, dirs, files in os.walk('D:\\Accounting (9706)', topdown=False):
for name in files:
shutil.move(name, 'D:\\')
它移动了我的所有文件。我想移动特定的。
答案 0 :(得分:1)
也许尝试制作一个字典,其中键是您希望将文件移动到的位置,值是您希望移动到该位置的所有文件的列表。然后遍历字典的键和值。您可以将移动实用程序与变量一起使用,只要变量是字符串并且对应于有效位置即可。
答案 1 :(得分:1)
试试这个:
import os
for root, dirs, files in os.walk('your source path', topdown=False):
for name in files:
shutil.move(name, 'your target path')
答案 2 :(得分:1)
我相信这就是你要找的东西:
import os
import shutil
moving_dict = {
"_w15": "D:\\Winter 15\\",
"_s15": "D:\\Summer 15\\"
}
os.chdir('D:\\Accounting (9706)')
for root, dirs, files in os.walk('D:\\Accounting (9706)', topdown=False):
for name in files:
for short, dest in moving_dict.items():
if short in name:
shutil.move(name, dest)
break
else:
print("Short name wasn't found in "+name)