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

Reply via email to