proc.communicate() 的输出不会在 django python 中格式化换行符

发布于 2024-09-16 02:20:50 字数 439 浏览 3 评论 0原文

我有一个使用communicate来获取输出并将其保存到我的数据库的子进程:

  p = Popen([str(pre_sync), '-avu', str(src), str(dest)], stdout=PIPE)
  syncoutput = p.communicate()
  check.log = syncoutput

一切正常,但是communicate的输出看起来像这样:

('sending incremental file list\n\nsent 89 bytes  received 13 bytes  204.00 bytes/sec\ntotal size is 25  speedup is 0.25\n', None)

全部在一行中,并插入了“\n”。有没有办法让它在新行中打印每一行?提前致谢。

I have a subprocess using communicate to get the output ans saving it to my database:

  p = Popen([str(pre_sync), '-avu', str(src), str(dest)], stdout=PIPE)
  syncoutput = p.communicate()
  check.log = syncoutput

It all works fine, but the output from communicate looks like this:

('sending incremental file list\n\nsent 89 bytes  received 13 bytes  204.00 bytes/sec\ntotal size is 25  speedup is 0.25\n', None)

All in a single line and with the "\n" inserted. Is there a way I can make it print each line in a new line? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满身野味 2024-09-23 02:20:50
syncoutput,sync_error = p.communicate()
print(syncoutput)

p.communicate() 返回一个 2 元组,组成stdout 和 stderr 的输出。当您打印二元组时,您会看到 \n 字符。当您打印字符串(新的 syncoutput)时,您将获得格式化文本。

syncoutput,sync_error = p.communicate()
print(syncoutput)

p.communicate() returns a 2-tuple, composed of the output from stdout and stderr. When you print the 2-tuple, you see the \n characters. When you print the string (of the new syncoutput), you will get formatted text.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文