【发布时间】:2019-04-21 02:01:52
【问题描述】:
This link 列出了一些 python 特定的编码。
其中一种编码是“unicode_escape”。
我只是想弄清楚,真的需要这种特殊编码吗?
>>> l = r'C:\Users\userx\toot'
>>> l
'C:\\Users\\userx\\toot'
>>> l.encode('unicode_escape').decode()
'C:\\\\Users\\\\userx\\\\toot'
如果您在上面看到,作为 unicode 对象的 'l' 已经处理了反斜杠的转义。将其转换为“unicode_escape”编码会增加一组转义反斜杠,这对我来说没有任何意义。
问题:
- 真的需要“unicode_escape”编码吗?
- 为什么“unicode_escape”在上面多加了一组反斜杠?
【问题讨论】:
-
如果你
print(l)你会看到在字符串的实际内容中,反斜杠没有被转义。字符串的repr版本转义了反斜杠,以便向开发人员明确显示它。 -
您为什么认为
unicode_escape()是 或将 用于您的用例?仅仅因为某些东西存在并不意味着它对您有意义或相关。 -
@CharlesDuffy 我正在编写一个 python 脚本,它以 windows 样式路径作为参数。因此,该脚本可以正常工作。我只是想确保在任何情况下我必须使用“unicode_escape”转换 arg 输入?
-
unicode_escape()的目的是生成可以直接替换为纯 ASCII Python 源文件的内容。你没有这样做,所以你不需要它。 -
@CharlesDuffy 你能给我举个例子吗?
标签: python python-3.x unicode python-unicode