SubProcess.を使用して、オプションのパラメーターを渡しながらOS.TMPファイルを使用してPythonでポーペン
質問
私はLinuxでPythonプログラムを執筆しており、その一部ではPDFTOTEXT Execupabilを実行してPDFテキストを変換しています。私が現在使用しているコードは以下に示されています。
pdfData = currentPDF.read()
tf = os.tmpfile()
tf.write(pdfData)
tf.seek(0)
out, err = subprocess.Popen(["pdftotext", "-", "-"], stdin = tf, stdout=subprocess.PIPE ).communicate()
これは正常に動作しますが、-layoutオプション(ドキュメントのレイアウトを保存)でpdftotext実行可能ファイルを実行したいと思います。 「 - 」をレイアウトに置き換え、「pdftotext」を「pdftotext -layout」などに置き換えようとしました。それらはすべて私に空のテキストを与えます。入力はTempファイルを介して配管されているため、引数リストを把握するのに苦労しています。 Popenのドキュメントのほとんどは、すべてのパラメーターが引数リストを介して渡されていると想定していますが、私の場合、入力はTEMPファイルを介して渡されています。
どんな助けも大歓迎です。
解決
これは私にとってはうまくいきます:
out, err = subprocess.Popen(
["pdftotext", '-layout', "-", "-"], stdin = tf, stdout=subprocess.PIPE ).communicate()
私は男のページで明示的な確認を見つけることができませんでしたが、私は最初は信じています -
言う pdftotext
期待する PDF-file
Stdinから来て、2番目 -
言う pdftotext
期待する text-file
stdoutに送られます。
他のヒント
shell = trueで文字列で完全なコマンドを渡すことができます:
out, err = subprocess.Popen('pdftotext -layout - -', shell=True, stdin=tf, stdout=subprocess.PIPE).communicate()
所属していません StackOverflow