文件名称:打印不合法的文件名-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2024-07-01 05:00:31
Python cookbook 中文 参考
5.15 打印不合法的文件名 问题 你的程序获取了一个目录中的文件名列表,但是当它试着去打印文件名的时候 程序崩溃, 出现了 UnicodeEncodeError 异常和一条奇怪的消息—— surrogates not allowed 。 解决方案 当打印未知的文件名时,使用下面的方法可以避免这样的错误: def bad_filename(filename): return repr(filename)[1:-1] try: print(filename) except UnicodeEncodeError: print(bad_filename(filename)) 讨论 这一小节讨论的是在编写必须处理文件系统的程序时一个不太常见但又很棘手 的问题。 默认情况下,Python 假定所有文件名都已经根据 sys.getfilesystemencoding() 的值编码过了。 但是,有一些文件系统并没有强制 要求这样做,因此允许创建文件名没有正确编码的文件。 这种情况不太常见,