i18n: looking for expertise
"Martin v. Löwis"
martin at v.loewis.de
Tue Mar 8 03:29:27 EST 2005
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
More information about the Python-list
mailing list