if __name__ == "__main__": # 有时候,可能会出现一些标准情况下打印会出现问题的文件名,他们不遵循系统的默认编码方式 # 这时候如果print这些文件名,那么py会因为无法解码而将字符映射到一个代理编码表,显然print无法处理这些代理为空的新建编码 # 解决的方案是建一个转换函数 def bad_filename(filename): return repr(filename)[1: -1] name = '' try: print(name) except UnicodeEncodeError: print(bad_filename(name))