Python中换行符的识别
因此,我想从子进程中获取标准输出,然后使用python将输出写入文件 我遇到的问题是来自子进程的标准输出丢失了格式,它包含\n有换行符的地方。我希望将输出写入一个格式完整的文件,这意味着该文件在有换行符的地方包含换行符,而不是一行包含\n 以下是我现有的代码:Python中换行符的识别,python,formatting,Python,Formatting,因此,我想从子进程中获取标准输出,然后使用python将输出写入文件 我遇到的问题是来自子进程的标准输出丢失了格式,它包含\n有换行符的地方。我希望将输出写入一个格式完整的文件,这意味着该文件在有换行符的地方包含换行符,而不是一行包含\n 以下是我现有的代码: import os, subprocess from cStringIO import StringIO proc = subprocess.Popen('foo.exe', shell=True, stdout=subprocess.
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()
当前文件文本:abbb\nabbb\naaaaab
我想要的是:
阿巴布
bbbb
aaaaab不要打电话给repr,即直接打电话
f.write(stdout_value)
别再打电话了
f.write(stdout_value)
为什么要报告?这将对象转换为它的表示形式,对于字符串,这意味着将chr10换行符之类的东西转换为“\n”。为什么要repr?这将对象转换为其表示形式,对于字符串,这意味着将chr10换行符之类的内容转换为“\n”。将转义加倍的repr,即反斜杠字符是导致格式丢失的原因-为什么要这样做?顺便说一句,str调用是完全冗余的、无害的,但完全没有用——为什么要在那里呢 使转义加倍的repr,即反斜杠字符,是导致您丢失格式的原因-您为什么要这样做?顺便说一句,str调用是完全冗余的、无害的,但完全没有用——为什么要在那里呢 搜索\\n并替换为\n。搜索\\n并替换为\n。