标题取的太大了,但只先记录一点,说明python os模块在不同平台下不同的行为。可能以后会添加,主要为抛砖引玉...
环境:
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平台下的输出结果看不出有什么规律,最好的办法是,统一对代码增加排序:
for root, dirs, files in os.walk(os.getcwd()): print sortd(files)
['12ab', 'Abc', 'Eab', 'a1bc', 'acd', 'bc']
这样,严格按照ascii表的顺序排列,避免出现莫名其妙的错误