我使用subprocess.Popen
在命令行中运行mysql查询process = subprocess.Popen(conarray, shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
r = process.stdout.readlines()
stdout = [x.decode('utf8').rstrip() for x in r]
稍后我将输出写入文件
f = open(file_name, 'w+', encoding='utf8')
f.write(templates[idx])
它工作正常但由于某种原因所有新行(\ n)和制表符(\ t)都被转义。
\t<div id="container">\n\t\t<a name="top"
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
如果打印整个序列对象,则会打印repr(list_object)
。这就是Python代表它的方式。
>>> lst = ['\t<div id="container">\n\t\t<a name="top"']
>>> print(lst)
['\t<div id="container">\n\t\t<a name="top"']
>>> print(lst[0])
<div id="container">
<a name="top"
>>>
答案 1 :(得分:1)
事实证明,为了使它们起作用,我还需要对该字符串应用unicode-escape
但unicode-escape
一般不起作用。
>>> s = 'naïve \\t test'
>>> print(s.encode('utf-8').decode('unicode_escape'))
naïve test
中描述了我能找到的最佳解决方案