Miki wrote: > Hello hj, > > > I have a small script here that goes to inside dir and sorts the file > > by create date. I can return the create date but I don't know how to > > find the name of that file... > > I need file that is not latest but was created before the last file. > > Any hints... I am newbiw python dude and still trying to figure out lot > > of 'stuff'.. > > > > ... > Remember that Python comes with "battaries included": > #!/usr/bin/env python > > from os import walk > from os.path import getctime, join > > def cmp_file_by_ctime(file1, file2): > return cmp(getctime(file1), getctime(file2))
If there are F files to be sorted, the OP's method requires F calls to os.stat(), and C comparisons of a create time, where C is presumably O(F*ln(F)) and is certainly >= (F-1). Your method requires 2*C calls to os.path.getctime(). This might be considered a little over the top -- you could be charged with "assault and battery" :-) > > def walktree(path): > file_list = [] > for root, dirs, files in walk(path): > file_list += [join(root, file) for file in files] > > file_list.sort(cmp_file_by_ctime) > return file_list[-2] > The OP gives every indication of wanting to examine all the files in one directory, *NOT* walk over a directory tree. Cheers, John -- http://mail.python.org/mailman/listinfo/python-list