You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python获取含西里尔字母的文件夹路径异常,需转为ASCII转义格式路径

解决Python获取含西里尔字母路径的转义问题

我明白你遇到的麻烦了——带西里尔字母的路径在Python里输出为空,还没法得到想要的UTF-8转义格式路径。咱们一步步来解决:

问题根源

你用的是Python 2的写法(print folder),在Windows环境下,os.getcwd()返回的是字节串形式的路径。如果终端的默认编码不支持西里尔字母(比如终端用GBK,而路径是CP1251或UTF-8编码),就会出现输出为空或乱码的情况。而你需要的是把西里尔字母转成UTF-8字节对应的\xXX转义格式。

解决方案

针对Python 2的代码

import os
# 获取Unicode格式的当前工作目录(避免字节串编码冲突)
unicode_path = os.getcwdu()
# 将Unicode路径编码为UTF-8字节串
utf8_bytes = unicode_path.encode('utf-8')
# 转成带\x转义的字符串(去掉repr自动添加的首尾引号)
escaped_path = repr(utf8_bytes)[1:-1]
print(escaped_path)

运行这段代码后,就能得到你想要的C:\\Users\\PereverzevPV\\Documents\\xd0\\x98\\xd0\\xbd\\xd0\\xb2格式路径。

如果你用Python 3(兼容写法)

Python 3中os.getcwd()直接返回Unicode字符串,处理方式类似,只需要调整下repr结果的截取:

import os
folder = os.getcwd()
utf8_bytes = folder.encode('utf-8')
# 去掉repr返回的b''前缀和末尾引号
escaped_path = repr(utf8_bytes)[2:-1]
print(escaped_path)

关键说明

  1. 用Unicode路径避免编码混乱:os.getcwdu()(Python 2)或直接os.getcwd()(Python 3)能拿到无编码问题的Unicode路径,这是解决问题的核心。
  2. 转义格式的生成:repr()函数会自动把非ASCII字节转换成\xXX的转义形式,我们只需要去掉它自动添加的引号(或Python 3中的b'前缀)就能得到目标格式。

内容的提问来源于stack exchange,提问作者Pavel Pereverzev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:12:12