標題取的太大了,但只先記錄一點,說明python os模塊在不一樣平臺下不一樣的行爲。可能之後會添加,主要爲拋磚引玉...
環境: python
12ab Abc Eab a1bc acd bc
for root, dirs, files in os.walk(os.getcwd()): print files上面代碼在win32平臺下的結果是:
['12ab', 'a1bc', 'Abc', 'acd', 'bc', 'Eab']同一代碼,在Linux平臺下的結果倒是:
['Eab', 'acd', 'a1bc', '12ab', 'bc', 'Abc' ]
因此,在linux平臺下的輸出結果看不出有什麼規律,最好的辦法是,統一對代碼增長排序: linux
for root, dirs, files in os.walk(os.getcwd()): print sortd(files)
['12ab', 'Abc', 'Eab', 'a1bc', 'acd', 'bc']
這樣,嚴格按照ascii表的順序排列,避免出現莫名其妙的錯誤 shell