On Tue, Sep 30, 2008 at 12:42 PM, Terry Reedy <[EMAIL PROTECTED]> wrote: > Guido van Rossum wrote: >> >> On Tue, Sep 30, 2008 at 11:13 AM, Georg Brandl <[EMAIL PROTECTED]> wrote: >>> >>> Victor Stinner schrieb: >>>> >>>> On Windows, we might reject bytes filenames for all file operations: >>>> open(), >>>> unlink(), os.path.join(), etc. (raise a TypeError or UnicodeError) >>> >>> Since I've seen no objections to this yet: please no. If we offer a >>> "lower-level" bytes filename API, it should work for all platforms. >> >> I'm not sure either way. I've heard it claim that Windows filesystem >> APIs use Unicode natively. Does Python 3.0 on Windows currently >> support filenames expressed as bytes? Are they encoded first before >> passing to the Unicode APIs? Using what encoding? > > In 3.0rc1, the listdir doc needs updating: > "os.listdir(path) > Return a list containing the names of the entries in the directory. The list > is in arbitrary order. It does not include the special entries '.' and '..' > even if they are present in the directory. Availability: Unix, Windows. > > On Windows NT/2k/XP and Unix, if path is a Unicode object, the result will > be a list of Unicode objects." > > s/Unicode/bytes/ at least for Windows. > >>>> os.listdir(b'.') > [b'countries.txt', b'multeetest.py', b't1.py', b't1.pyc', b't2.py', b'tem', > b'temp.py', b'temp.pyc', b'temp2.py', b'temp3.py', b'temp4.py', b'test.py', > b'z', b'z.txt'] > > The bytes names do not work however: > >>>> t=open(b'tem') > Traceback (most recent call last): > File "<pyshell#23>", line 1, in <module> > t=open(b'tem') > File "C:\Programs\Python30\lib\io.py", line 284, in __new__ > return open(*args, **kwargs) > File "C:\Programs\Python30\lib\io.py", line 184, in open > raise TypeError("invalid file: %r" % file) > TypeError: invalid file: b'tem' > > Is this what you were asking?
No, that's because bytes is missing from the explicit list of allowable types in io.open. Victor has a one-line trivial patch for this. Could you try this though? >>> import _fileio >>> _fileio._FileIO(b'tem') -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com