我有一组文件,我想用智能方式重新组织,使用python。 这些文件是特定于州 - 县的年份,并保存在此表单的文件夹结构中:\ state \ year \ county \ image.jpg,每个县有许多图像。 我有以下代码将所有文件复制并重命名为state_year_county_image.jpg:
import os, shutil
path = "C:\\Users\\me\\"
path_copies = "C:\\Users\\me\\copies\\"
state_list = os.listdir(path)
for state in state_list:
year_list = os.listdir(path+state)
for year in year_list:
county_list = os.listdir(path+state+"\\"+year)
for county in county_list:
image_list = os.listdir(path+state+"\\"+year+"\\"+county)
for image in image_list:
path_old = path+state+"\\"+year+"\\"+county+"\\"+image
path_new = path_copies+state+"_"+year+"_"+county+"_"+image
shutil.copy(path_old, path_new)
如何更改我的文件命名机制(例如从当前的state_year_county_image.jpg到year_state_county_image.jpg或根据我以后可能需要的其他命名制度)?如果它允许更多的灵活性,我愿意采用其他一些基本命名约定,但我希望文件名能反映原始文件夹名称。
答案 0 :(得分:0)
这样的事情:
import os
import shutil
SRCDIR = r'C:\Users\me\originals'
DESTDIR = r'C:\Users\me\copies'
for dirname, dirs, files in os.walk(SRCDIR):
dname = dirname.replace(os.path.sep, '_')
for file in files:
shutil.copy(file, os.path.join(DESTDIR,
"{}_{}".format(dname, file))
答案 1 :(得分:0)
这与Rename files to instead being in sub-directories, have the year as part of the filename
基本上是相同的问题我建议您使用该伪代码,但使用新的模式和文件名表达式。您需要提供一些实际的文件名到Regex101中以构成样式,并需要确定输出格式。