【问题标题】:Subprocess Popen and PIPE in PythonPython中的子进程Popen和PIPE
【发布时间】:2010-12-22 15:16:47
【问题描述】:

以下代码将空行打印为错误的输出。 问题不在于权限,因为我测试了具有 pdf 文件的 777 权限的命令。 如何修复命令以提供正确的输出?

import subprocess
from subprocess import PIPE, Popen
output = Popen(['pdftotext', '/home/aal/Desktop/lkn_pdf/appa.pdf'], stdout=PIPE).communicate()[0]

【问题讨论】:

  • 不相关:在 Python 2.7+ 中,如果要引发非零退出状态的异常,可以将其写为 output = check_output(['pdftotext', '/home/aal/Desktop/lkn_pdf/appa.pdf', '-'])
  • @J.F.Sebastian 我认为你的评论应该是一个答案。
  • 由于问题标题,该评论适用于来自谷歌的访问者。但是check_output.communicate 与您的真正问题无关:将输出文件名提供为-,以便pdftotext 写入管道(其标准输出)并且该部分已经得到回答。

标签: python subprocess pipe popen


【解决方案1】:

pdftotext 默认创建一个文件。要将结果发送到标准输出,请使用:

pdftotext file.pdf -

或在 Python 中:

output = Popen(['pdftotext', '/home/aal/Desktop/lkn_pdf/appa.pdf', '-'], stdout=PIPE).communicate()[0]

【讨论】:

    猜你喜欢
    • 2017-07-24
    • 1970-01-01
    • 2014-03-30
    • 2018-12-05
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2012-03-03
    • 2011-08-05
    相关资源
    最近更新 更多