代码之家  ›  专栏  ›  技术社区  ›  mlissner

子进程不输出任何内容

  •  1
  • mlissner  · 技术社区  · 14 年前

    我试图使用python来运行pdftotext,但是由于某些原因,我的代码无法工作。如果我运行下面的命令,我希望content变量包含pdf的内容,但得到的结果只是一个空字符串。

    有人知道我错过了什么吗?

    def getPDFContent(path):
        path = "/path/to/a valid/pdffile.pdf"
    
        process = subprocess.Popen(["pdftotext", path], shell=False, 
            stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        content, err = process.communicate()[0:2]
        return content, err
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   sth ACP    14 年前

    默认情况下 pdftotext 在stdout上不输出任何内容,而是创建 .txt 与PDF具有相同基名称的文件。要获取stdout上的文本,请添加 - 作为调用中的第二个参数 PDFT-TEXT :

    process = subprocess.Popen(["pdftotext", path, "-"], shell=False, 
        stdout=subprocess.PIPE, stderr=subprocess.STDOUT)