why the following behavior: >>> b=b'thisisbytes' >>> b[0] == b't' False >>> b[0] 116
i expected same thing as: >>> b.startswith(b't') True >>> b[0:1] == b't' True >>> b[0:1] b't' >>> b[:1] b't' and this is a bit curious: >>> b[2:5] b'isi' >>> for i in b[2:5]: print(i) 105 115 105 problems occur when filename is in bytes. >>> os.listdir('/usr/doc/kbd-1.08/utf') ['README', 'ethiopic', b'âªâ¬', 'utfdemo', 'utflist'] os.stat for example works: >>> os.stat(b'/usr/doc/kbd-1.08/utf/âªâ¬') posix.stat_result(st_mode=33188, st_ino=1376259, st_dev=5633, st_nlink=1, st_uid=0, st_gid=0, st_size=295, st_atime=1211305274, st_mtime=1034334536, st_ctime=1190763635) but other functions don't. especially os.path.join and os.walk complain: >>> w=os.walk('/usr/doc/kbd-1.08/utf/') >>> next(w) Traceback (most recent call last): File "<pyshell#36>", line 1, in <module> next(w) File "/root/Py3kb1/lib/python3.0/os.py", line 268, in walk if isdir(join(top, name)): File "/root/Py3kb1/lib/python3.0/posixpath.py", line 64, in join if b.startswith('/'): TypeError: expected an object with the buffer interface and trying to open the file: >>> f=open('âªâ¬') Traceback (most recent call last): File "<pyshell#77>", line 1, in <module> f=open('âªâ¬') File "/root/Py3kb1/lib/python3.0/io.py", line 280, in __new__ return open(*args, **kwargs) File "/root/Py3kb1/lib/python3.0/io.py", line 219, in open closefd) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128) >>> f=open(b'âªâ¬') Traceback (most recent call last): File "<pyshell#78>", line 1, in <module> f=open(b'âªâ¬') File "/root/Py3kb1/lib/python3.0/io.py", line 280, in __new__ return open(*args, **kwargs) File "/root/Py3kb1/lib/python3.0/io.py", line 180, in open raise TypeError("invalid file: %r" % file) TypeError: invalid file: b'âªâ¬' so, how do you deal with bytes in these cases? nirinA -- _______________________________________________ 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