PDi*_*lta 7 python escaping python-3.x
我想将“\t”写入文件。不是“制表符”,而是字面上的“\t”。我该怎么做呢?这已经让我发疯了一个多小时了;我尝试的所有操作都会产生一个实际的“制表符”(空白)。
我为什么想要这个?因为我正在使用 ConfigParser() 生成一个配置文件,其中还包含一些分隔符,并且我希望该文件是人类可读的。我不认为空白是可读的。
编辑:抱歉,问题不清楚:我想对包含字符串的变量执行此操作。所以写“\\t”不是一个选择。我必须将包含转义字符的变量的值写入文件,其方式在思想上等同于:
v = "\t"
write(v)
Run Code Online (Sandbox Code Playgroud)
不改变定义的情况v下(尽管对 的操作是可以的)定义为“\t”后,v似乎不可能更改为“\\t”。v
您需要转义反斜杠,这样它就不会被解释为特殊字符:
file_handle.write("\\t")
Run Code Online (Sandbox Code Playgroud)
编辑:看起来你最好的选择是使用 python 的优秀string.replace()函数:
>>> v = "aaa \t bbb"
>>> print v
aaa bbb
>>> x = v.replace("\t", "\\t") # <-- replace all '\t' in string with '\\t'
>>> print x
aaa \t bbb
Run Code Online (Sandbox Code Playgroud)
注意:v将保持不变,因为字符串在 python 中是不可变的
编辑2:
看起来转换为原始字符串将为您处理所有转义字符的转义:
>>> a = 'aaa\nbbb\n\tccc'
>>> print a
aaa
bbb
ccc
>>> b = a.encode('string-escape')
>>> print b
aaa\nbbb\n\tccc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11434 次 |
| 最近记录: |