在Python中识别换行符

1 投票
3 回答
1159 浏览
提问于 2025-04-15 16:48

我想用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)

撰写回答