Marc 'BlackJack' Rintsch wrote: > In <[EMAIL PROTECTED]>, Jean-Paul > Calderone wrote: > >>> How would you propose listdir should behave? >> Umm, just a wild guess, but how about raising an exception which includes >> the name of the file which could not be decoded? > > Suppose you have a directory with just some files having a name that can't > be decoded with the file system encoding. So `listdir()` fails at this > point and raises an exception. How would you get the names then? Even the > ones that *can* be decoded? This doesn't look very nice: > > path = u'some path' > try: > files = os.listdir(path) > except UnicodeError, e: > files = os.listdir(path.encode(sys.getfilesystemencoding())) > # Decode and filter the list "manually" here.
i agree that it does not look very nice. but does this look nicer? :) path = u'some path' files = os.listdir(path) def check_and_fix_wrong_filename(file): if isinstance(file,unicode): return file else: #somehow convert it to unicode, and return it files = [check_and_fix_wrong_filename(f) for f in files] in other words, your opinion is that the proposed solution is not optimal, or that the current behavior is fine? gabor -- http://mail.python.org/mailman/listinfo/python-list