文件系统上的文件未排序。您可以使用以下命令自行对结果文件名进行排序sorted()功能 http://docs.python.org/library/functions.html#sorted:
for infile in sorted(glob.glob('*.txt')):
print "Current File Being Processed is: " + infile
请注意,os.path.join
在你的代码中调用是一个空操作;如果只有一个参数,它不会执行任何操作,只是返回该参数不变。
请注意,您的文件将按字母顺序排序,这使得10
before 9
。您可以使用自定义键功能来改进排序:
import re
numbers = re.compile(r'(\d+)')
def numericalSort(value):
parts = numbers.split(value)
parts[1::2] = map(int, parts[1::2])
return parts
for infile in sorted(glob.glob('*.txt'), key=numericalSort):
print "Current File Being Processed is: " + infile
The numericalSort
函数拆分文件名中的所有数字,将其转换为实际数字,并返回排序结果:
>>> files = ['file9.txt', 'file10.txt', 'file11.txt', '32foo9.txt', '32foo10.txt']
>>> sorted(files)
['32foo10.txt', '32foo9.txt', 'file10.txt', 'file11.txt', 'file9.txt']
>>> sorted(files, key=numericalSort)
['32foo9.txt', '32foo10.txt', 'file9.txt', 'file10.txt', 'file11.txt']