ファイルシステム上のファイルはソートされません。あなたが使用したファイル名を自分で並べ替えることができsorted()
function:
for infile in sorted(glob.glob('*.txt')):
print "Current File Being Processed is: " + infile
あなたのコード内のos.path.join
呼び出しは何もしませんことに注意してください。 1つの引数だけでは何もしませんが、その引数は変更されません。
ファイルはアルファベット順に並べ替えられ、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']
HI。ソートされた関数は、残念ながら順序を変更しません。 – user1620012
@ user1620012:ソート順を改善するために私の答えを更新しました。 –
こんにちは..実際に私のファイルの名前は.. text-text9-text.txt、text-text10-text.txtなどです。 – user1620012