On Fri, Mar 1, 2013 at 12:43 AM, Honghe Wu <leopards...@gmail.com> wrote: > env: python 2.7.3 > > 6 test files' name in a directory as below: > 12ab Abc Eab a1bc acd bc > > the following is test code: > for root, dirs, files in os.walk(os.getcwd()): > print files > > the output in win32 platform is: > ['12ab', 'a1bc', 'Abc', 'acd', 'bc', 'Eab'] > > but in linux is: > ['Eab', 'acd', 'a1bc', '12ab', 'bc', 'Abc' ] > > they are so different. a bug?
Nope. When os.walk() fetches a listing of the contents of a directory, it internally uses os.listdir() (or a moral equivalent thereof). The docs for os.listdir() state that "The [returned] list is in arbitrary order.". The order is dependent on the OS and filesystem, and likely also more obscure factors (e.g. the order in which the files were created). The lack of any required ordering allows for improved I/O performance in many/most cases. Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list