我试图根据部分文件名创建子文件夹。我在目录中有以下文件示例:
xxx.01.741425.xlsx
xxx.12.658521.xlsx
xxx.01.667423.xlsx
xxx.12.125867.xls
xxx.12.355456.xlsx
我希望xxx之后的所有文件都是01。在一个名为01的子文件夹中,所有文件在xxx之后都有12个。在另一个名为12的子文件夹中,依此类推。现在我通过将.replace(f.split("。")[2],"")添加到文件夹中找到了解决方案:
folder = "C:\Folder"+"/"+f.split(".")[1].replace(f.split(".")[2], "").
现在我想用State缩写替换文件夹名称01,12。我创建了一个字典st_name = {' 01' :' AL'' 12':' FL'},但我不知道如何使用它。有更好的方法吗?
import os
import shutil
import sys
dr = sys.argv[1]; files = os.listdir("C:\Folder")
for f in [f for f in files if os.path.isfile ("C:\Folder"+"/"+f)]:
folder = "C:\Folder"+"/"+f.split(".")[1]
if not os.path.exists(folder):
os.makedirs(folder)
shutil.move("C:\Folder"+"/"+f, folder+"/"+f)
答案 0 :(得分:1)
使用您创建的词典应用您的映射:
folder = "C:\Folder"+"/"+st_name[f.split(".")[1]]