繁体   English   中英

在Python中排序integer个文件名

[英]Sort integer file names in Python

我有文件名作为

在此处输入图像描述

当我迭代它们时,它以字符串方式迭代,例如:

1
10 
11
.
.
19
2
20
.. so on. I hope you got this. 

我想将它们作为整数而不是字符串进行迭代。 请帮我写一个function给它。

for i,file in enumerate(sorted(files),key=lambda x: int(os.path.splitext(file)[0]))
     #CODE 

但是报错:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-45-f667164b9d6e> in <module>
     
----> 6 for i,file in enumerate(sorted(files),key=lambda x: int(os.path.splitext(file)[0])):
     

TypeError: 'key' is an invalid keyword argument for enumerate()

请帮我写一个function给它。 提前致谢。

您可以先尝试将所有文件转换为整数,然后对它们进行排序。

import os

files = ['0.pdf', '1.pdf', '12.pdf', '15.pdf', '3.pdf', '2.pdf', ]

for i, file_as_number in enumerate(sorted(int(os.path.splitext(file)[0]) for file in files)):
    print(i, file_as_number)
files = ['0.pdf', '1.pdf', '12.pdf', '15.pdf', '3.pdf', '2.pdf' ]
fileDict= {}
SortedFiles = []
for i in range(len(files)):
    fileDict[int(files[i].split('.')[0])] = files[i]
for i in sorted(list(fileDict.keys())):
    SortedFiles.append(fileDict[i])
print (SortedFiles)

['0.pdf', '1.pdf', '2.pdf', '3.pdf', '12.pdf', '15.pdf']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM