On 2015-02-19 22:55, Jason Friedman wrote: > > If you're going to call listdir, you probably want to use fnmatch > > directly. > > > > fnmatch seems to be silent on non-existent directories: > python -c 'import fnmatch; fnmatch.fnmatch("/no/such/path", "*")'
a better test would be glob.glob as fnmatch simply asks "does this string match this pattern?" so it cares nothing for filenames. However, it still holds that glob.glob("/does/not/exist/*.txt") doesn't raise an error but rather just returns an empty list of iterables. However, for the OP's question, it's max() that raises an error: import glob import os def most_recent_file(loc, pattern): globstr = os.path.join(loc, pattern) return max(glob.glob(globstr), key=lambda f: os.stat(f).st_mtime) gives me this when the glob returns an empty iterable: Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: max() arg is an empty sequence -tkc -- https://mail.python.org/mailman/listinfo/python-list