不要在Python 3中转义字符串

时间:2019-07-02 13:31:24

标签: python python-3.x string escaping

我从文件中获取了一些数据,但是经过一些处理后,Python转义了反斜杠,这是不希望的行为。

Windows 10上的Python 3

line = "URL     ABC     \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']

问题不是Python中字符串的表示形式。问题是我需要将输出写入文件,因此当我尝试将tokens[2]写入文件时,它将写入\\/A\\/B\\/C\\/D而不是\/A\/B\/C\/D。哪个输出错误。

2 个答案:

答案 0 :(得分:-1)

尝试使用: 分割后添加

line = "URL ABC \/A\/B\/C\/D" #line of fetched file tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D'] tokens[2]=tokens[2].decode('string_escape') ;

答案 1 :(得分:-1)

您需要将其作为原始字符串来获取,而不是

line = "URL     ABC     \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']

您需要在字符串前添加一个r,这样任何内容都无法逃脱。

line = r"URL     ABC     \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']