2

サブプロセス モジュールが Python からコマンド ラインを使用するための最良の方法であることはどこでも読んだことがありますが、うまく機能させることができません。Web ページ全体の画像を保存する Page Saver という Firefox 拡張機能があります。コマンド ラインで、次のコマンドを実行すると、イメージが正常に保存されます。

firefox -savepng "http://www.google.com"

このスクリプトを試してプロセスを自動化しましたが、うまくいきませんでした:

import subprocess
subprocess.call(['firefox', '-savepng', 'http://www.google.com'], shell=False)

次のエラーが表示されます。

Traceback (most recent call last):
  File "C:/Users/computer_4/Desktop/Scripts/crescentsaver.py", line 2, in <module>
    subprocess.call(['firefox', '-savepng', 'http://www.google.com'], shell=False)
  File "C:\Python27\lib\subprocess.py", line 524, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 711, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 948, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

サブプロセスを間違って使用していますか? ありがとう。

更新: 解決策が見つかりました。使用していた拡張機能の詳細でした。スクリプトを機能させるには、Firefox の既定の保存フォルダーから実行する必要がありました。shell=True を使用して、パラメータをリストではなく文字列として実行しました。

import subprocess
subprocess.call('firefox -savepng http://www.google.com', shell=True)

新規ユーザーは投稿後 8 時間以内に自分の質問に回答することが制限されているため、私は自分の質問に答えることができませんでした。

4

1 に答える 1