跳至内容
MNBVC-Wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
踩坑记录:20240219非utf8的路径名python打印报错
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
==== python对路径打印的编码处理和操作系统不一致的坑 踩于2024.2.19==== === 背景 === 在ubuntu下,用tar解压https://arxiv.org/src/1711.03378 这个论文的source压缩包(arXiv-1711.03378v1.tar.gz),解压后出现一个俄文的目录,但是在ubuntu下看到是乱码,同时python直接打印会报错 === 经过 === 报错示例代码如下 from pathlib import PurePosixPath, Path folder_path = "/nas2/arxiv/disk3/arxiv_debug" folder_path = Path(folder_path) file_list = folder_path.rglob("**/*.*") for file_path in file_list: print(file_path) 报错信息 UnicodeEncodeError: 'utf-8' codec can't encode characters in position 64-67: surrogates not allowed === 结果 === 发现是python在print时调用了str方法,会尝试把path转码成utf8编码,但是转码不成功则报错。而操作系统本身,当发现不是utf8编码时,直接就存储了原始字符串。所以一个简单的解决办法是使用repr方法,即: print(repr(file_path))
踩坑记录/20240219非utf8的路径名python打印报错.txt
· 最后更改: 2024/02/19 16:45 由
MNBVC项目组
页面工具
显示页面
过去修订
反向链接
回到顶部