Python匹配文件名并放入文件夹中
我试着匹配一个文件夹中的所有文件名,并把它们和文件名放在一个单独的文件夹中。举个例子:Python匹配文件名并放入文件夹中,python,Python,我试着匹配一个文件夹中的所有文件名,并把它们和文件名放在一个单独的文件夹中。举个例子: 2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.csv 2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.xml 2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.doc 2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.do
2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.csv
2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.xml
2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.doc
2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.dox
2015-05-14#7449618a-f819-4d71-83ad-a1e4c2fe9bc1.csv
2015-05-14#7459618a-f819-4d71-83ad-a1e4c2fe9bc1.xml
2015-05-14#7459618a-f819-4d71-83ad-a1e4c2fe9bc1.doc
2015-05-14#7459618a-f819-4d71-83ad-a1e4c2fe9bc1.doc
我想将这些文件分组到一个文件夹中,文件夹名为
2015-05-14#7449618a-f819-4d71-83ad-a1e4c2fe9bc1
2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1
请记住,文件夹中有数百个这样的文件,我正在努力使它们更整洁:)
到目前为止我所得到的
for file in os.listdir(src_path):
if not os.path.isdir(dest_path + file.split("-")[:11]):
os.mkdir(dest_path + file.split("-")[0])
shutil.copy(src_path + file, dest_path + file.split("-")[:11])
我的想法是匹配前11位数字。如果您希望提取:
2015-05-147449618A-f819-4d71-83ad-a1e4c2fe9bc1
通过使用os.path
中的splitext
在点上进行拆分,您可以更轻松地获取所需的文件夹名称:
fname, fext = os.path.splitext('2015-05-14#6449618a-f819-4d71-83ad-a1e4c2fe9bc1.csv')
fname将保持2015-05-14 34; 7449618a-f819-4d71-83ad-a1e4c2fe9bc1
fext将保持csv
额外的信息。不要使用文件
,它是Python的内置工具:
这可能会导致问题。试试
fname
或者干脆f
我想你最好还是用以下方法跑步:
file.rsplit(".",1)[0]
这将为您提供目录使用的路径名。使用
rsplit
而不是split
的原因是为了防止文件名中有多个句号请注意,您可以通过以下方式获得相同的结果:
file.rpartition(".")[0]
昨晚我在看你的个人资料,你回答Python的时候是个怪兽:)我不会说是个怪兽……我只是尽我所能回答。谢谢你,P