Pete O'Connell wrote:
Hi I have some code which works nine times out of ten.

Today. Next week it might work zero times out of ten. Your result is a pure accident of the order that the files are created. When you call os.listdir(), you don't get the files in any specific order. The order you receive is the order that they happen to be stored by the file system, which is essentially arbitrary.

So you take this arbitrary list, walk through it in order skipping some files, and when you hit the last file, you go on to the next step. But there's no guarantee which that last file will be.

A better way is to take the file names from os.listdir, remove the ones you don't care about, and then sort the remaining ones, then take the last one:

files = os.listdir('.')
# filter out backups and autosave files
files = [f for f in files if not (f.endswith('~') or
                                  f.endswith('.autosave')]
files.sort()
the_file_name = files[-1]

should work, although you might need a bit more work on the sorting.


One last comment:

def openNewestCompCommandLine():

Your function is called *open* newest command line. How do you open a command line? Seems like a misleading name to me. But then, instead of
opening the file, you "nuke" it instead:

    os.system("nuke "  + theFullPath)

Oh my, I can see this being *very* entertaining in the future...




--
Steven

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to