识别Python中的换行符

时间:2009-12-08 22:47:10

标签: python formatting

所以我想从子进程中获取stdout,然后使用python将输出写入文件。

我遇到的问题是来自子进程的stdout丢失了格式,它包含\ n,其中有换行符。我想将输出写入格式完整的文件中,这意味着代替包含\ 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 :(得分:3)

请勿拨打repr(),即。只需致电

f.write(stdout_value)

答案 1 :(得分:1)

为什么repr?这会将对象转换为其表示形式,对于字符串来说意味着将chr(10)(换行符)转换为'\n'

答案 2 :(得分:0)

repr(两倍于“逃脱”,即反斜杠字符)是导致你“失去格式”的原因 - 为什么你要这样做呢?顺便说一下,str电话是完全多余的(无害,但完全无用 - 为什么要在那里?!)。