実現したいこと
複数のPDFファイルから外部プログラム(pdf2txt.py)を使ってテキストデータを自動的に使用しているエディタ(spyder)内に取得したい。
subprocessモジュールとfor文を使えばよさそうと思い、コードを作成しましたが、エラーの解決方法がわからないで困っております。
発生している問題・エラーメッセージ
TypeError: bufsize must be an integer
該当のソースコード
import subprocess text_lines = [] for i in (decrypted_files): text = subprocess.Popen('/Users/~.py_a', i, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) text_lines.append(text)
- decrypted_filesはテキストを取得したい複数のPDFファイルのフルパスの文字列リストです。
試したこと
- Popenをcheck_output、callに置き換えた上でコードを修正しても同じエラーが出ました。
- 以下太字の通り、bafsizeの引数を与えてみましたが、別のエラーが発生しました。
試した別のコード(check_outputなどへの置き換え、bafsizeの引数追加)
import subprocess text_lines = [] for i in (decrypted_files): text = subprocess.check_output(['/Users/~pdf2txt.py_a'],i, **bufsize = -1**, shell = True) text_lines.append(text)
発生した別のエラー
TypeError: __init__() got multiple values for argument 'bufsize'
補足情報
pdf2txt.py
- ターミナルから以下のコマンドで正常に単一のPDFファイルからテキスト取得することは確認しています。
python pdf2txt.py ~.pdf
- 以下のコマンドラインでPDFminer.sixライブラリインストール時に入手しています。
$ wget https:// pypi. python. org/ packages/ source/ p/ pdfminer. six/ pdfminer. six-20160202. zip $ unzip pdfminer. six-20160202. zip $ cd pdfminer. six-20160202 $ python setup. py install
- 以前にpermission deniedのエラーが出たため、こちらを参考に権限変更をしています。
環境
- Python 3.7.3
- macOS 10.14.6

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/03 08:25