在Python中识别换行符
我想用Python从一个子进程中获取输出,然后把这些输出写入一个文件。
我遇到的问题是,从子进程获取的输出格式不对,里面有很多\n这样的字符,表示换行。我希望写入文件时能保持格式,也就是说,文件里应该是换行,而不是一行里有很多\n。
这是我现在的代码:
import os, subprocess
from cStringIO import StringIO
proc = subprocess.Popen('foo.exe', shell=True, stdout=subprocess.PIPE,)
stdout_value = proc.communicate()[0]
f=open('fooOut.txt', 'w')
f.write(str(repr(stdout_value)))
f.close()
当前文件内容:abbbb\nabbbb\naaaaab
我想要的效果:
abbbb
bbbb
aaaaab
相关问题:
3 个回答
0
repr这个东西会把一些特殊字符(比如反斜杠)加倍,这就是你“格式丢失”的原因。你为什么要这样做呢?顺便说一下,str这个调用其实是多余的(虽然没有害处,但完全没用——为什么要加上它呢?)。
1
为什么要用 repr?它的作用是把一个对象转换成它的表示形式。对于字符串来说,这意味着把像 chr(10)(换行符)这样的东西转换成 '\n'。
3
不要使用 repr(),也就是说,直接调用
f.write(stdout_value)