sort by file/directory
Jeremy Jones
zanesdad at bellsouth.net
Wed Sep 10 15:26:32 EDT 2003
* Mike Zupan (mzupan at meso.com) wrote:
> I have a list that includes files and directories
>
> ie: list = ['file', 'file2', 'dir1','file3','dir2' ]
>
> I want to sort it so it looks like this
>
> ['dir1', 'dir2', 'file1','file2','file3' ]
>
>
> I'm just wondering if there is an easy way to do this
>
Is there anything in the name of the files/directories that specified that
it is a file or a directory? If not, then I wouldn't think so. When you
are gathering the file and directory listing (maybe you're using os.walk?),
then you could at that time do something like (given a 'dir_list' and a
'file_list'):
>>> if os.path.isdir(path_to_file):
... dir_list.append(os.path.basename(path_to_file))
... else:
... file_list.append(os.path.basename(path_to_file))
Then sort the lists and concatenate them together:
>>> dir_list.sort()
>>> file_list.sort()
>>> new_list = dir_list + file_list
>>> new_list
['bin', 'etc', 'sbin', 'tmp', '.muttrc', 'htpasswd', 'httpd.conf',
'passwd']
Jeremy Jones
More information about the Python-list
mailing list