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