klappnase wrote:
I am using python-2.3.4 and get unicode errors:


f = os.path.join(u'/home/pingu/phonoripper', u'\xc3\u20ac')
os.path.isfile(f)

True

os.access(f, os.R_OK)

Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeEncodeError: 'ascii' codec can't encode characters in position 24-25: ordinal not in range(128)

That's apparently a bug in os.access, which doesn't support Unicode file names. As a work around, do

def access(name, mode, orig=os.access):
    try:
       return orig(name, mode)
    except UnicodeError:
       return orig(name.encode(sys.getfilesystemencoding(), mode))
os.access=access

Apparently, access is used so rarely that nobody has noticed yet (or
didn't bother to report). os.path.isfile() builds on os.stat(), which
does support Unicode file names.

Regards,
Martin
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to