文件系統上的文件沒有排序。您可以將生成的文件名自己使用排序sorted()
function:
for infile in sorted(glob.glob('*.txt')):
print "Current File Being Processed is: " + infile
注意,os.path.join
呼叫你的代碼是一個空操作;只有一個參數,它不會做任何事情,只是返回沒有改變的參數。
請注意,您的文件將按照字母順序排序,這會將10
放在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
的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']
嗨。排序的函數不幸地改變了順序。 – user1620012
@ user1620012:更新了我的答案以改善排序順序。 –
嗨..其實我的文件有像.. .. text-text9-text.txt,text-text10-text.txt等 – user1620012