忽略文件名编码-华为云大数据中台架构分享

5.14忽略文件名编码问题你想使用原始文件名执行文件的I/O操作,也就是说文件名并没有经过系统默认编码去解码或编码过。解决方案默认情况下,所有的文件名都会根据sys.getfilesystemencoding()返回的文本编码来编码或解码。比如: >>> sys.getfilesystemencoding() 'utf-8' >>>如果因为某种原因你想忽略这种编码,可以使用一个原始字节字符串来指定一个文件名即可。比如: >>> # Wrte a file using a unicode filename >>> with open('jalape\xf1o.txt', 'w') as f: ... f.write('Spicy!') ... 6 >>> # Directory listing (decoded) >>> import os >>> os.listdir('.') ['jalapeño.txt'] >>> # Directory listing (raw) >>> os.listdir(b'.') # Note: byte string [b'jalapen\xcc\x83o.txt'] >>> # Open file with raw filename >>> with open(b'jalapen\xcc\x83o.txt') as f: ... print(f.read()) ... Spicy! >>>
pdf 文件大小:5.68MB