Python-如何将转义序列转换为字符串文本
对python有些陌生,老实说,不太熟悉python中的编码 假设在解析文本/html输入时,我得到了如下路径Python-如何将转义序列转换为字符串文本,python,string,encoding,escaping,Python,String,Encoding,Escaping,对python有些陌生,老实说,不太熟悉python中的编码 假设在解析文本/html输入时,我得到了如下路径 line = \\dfslocation\prj\gct\asw\sw_archive 但是,在处理的早期部分,转义序列“\a”和“t”似乎已不再作为文本存储 literal_line = "%r"%(line) print literal_line \\dfslocation\prj\gct\x07sw\\sw_archive 我最好的猜测是它发生在我试图将电子邮件转换为
line = \\dfslocation\prj\gct\asw\sw_archive
但是,在处理的早期部分,转义序列“\a”和“t”似乎已不再作为文本存储
literal_line = "%r"%(line)
print literal_line
\\dfslocation\prj\gct\x07sw\\sw_archive
我最好的猜测是它发生在我试图将电子邮件转换为文本时
for part in self.msg.walk():
if part.get_content_type().startswith('text/plain'):
plain_text_part = part.get_payload(decode=False)
received_text += '\n'
received_text += plain_text_part
received_text = received_text.encode('ascii', 'ignore')
稍后我想将其用作网络路径,这将要求其采用文本形式-ie\a,而不是\x07(ASCII贝尔字符)
我能想到的暴力方式是搜索所有转义序列,并用相应的字符串文本替换它们
有更好的方法吗
谢谢尝试将行变量内容存储为原始内容,而不是ASCII 如果按原样存储,
\a
将转换为x07
>>> line = "\\dfslocation\prj\gct\asw\sw_archive"
>>> line
'\\dfslocation\\prj\\gct\x07sw\\sw_archive'
但是,如果使用r''
格式存储为原始,它将不会转换为特殊字符
>>> line = r'\\dfslocation\prj\gct\asw\sw_archive'
>>> print line
\\dfslocation\prj\gct\asw\sw_archive
>>>
原始字符串将
\a
视为\a
,使其适合windows文件名和正则表达式。尝试将行变量内容存储为原始内容,而不是ASCII
如果按原样存储,\a
将转换为x07
>>> line = "\\dfslocation\prj\gct\asw\sw_archive"
>>> line
'\\dfslocation\\prj\\gct\x07sw\\sw_archive'
但是,如果使用r''
格式存储为原始,它将不会转换为特殊字符
>>> line = r'\\dfslocation\prj\gct\asw\sw_archive'
>>> print line
\\dfslocation\prj\gct\asw\sw_archive
>>>
原始字符串将\a
视为\a
,使其非常适合windows文件名和正则表达式