3

私はそのようなコマンドラインで呼び出したphpスクリプトを持っています:

$php importTextFile.php --user "X" --title "name" notice_X.txt 

そのファイルをPythonスクリプトで使用したいと思います。私はもう試した :

for file in os.listdir("."):
    subprocess.call(["php", "-f", "importTextFile.php"], "--user=X", "--title="'%s' % name, file)

私は彼に次のエラーがあります:

  File "./pageFromFile.py", line 21, in main
    subprocess.call(["php", "-f","importTextFile.php"], "--user=Bot", "--title="'%s' % nom, fichier)
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 629, in __init__
    raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer

このエラーを修正する方法がわかりません。ご協力いただきありがとうございます。

edit1:動作してくれてありがとう、しかし使用法メッセージが表示されたので引数に問題があります:

Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a

edit2:引数の順序を変更しましたが、機能します:["php"、 "php / script / path"、 "-f"、 "--user"、 "X"、 "--title"、X、file]

4

2 に答える 2

5
subprocess.call(["php", "-f", "importTextFile.php", "--user=X", "--title="'%s' % name, file])

修正する必要があります

于 2012-08-02T15:38:39.873 に答える
1

ドキュメントが乱雑であるため、これが乱雑な説明です。

差出人: http: //docs.python.org/library/subprocess.html#frequently-used-arguments

さまざまなユースケースをサポートするために、Popenコンストラクター(およびコンビニエンス関数)は、多数のオプションの引数を受け入れます。最も一般的なユースケースでは、これらの引数の多くをデフォルト値のままにしておくことができます。最も一般的に必要な引数は次のとおりです。

差出人: http: //docs.python.org/library/subprocess.html#subprocess.call

call()のシグネチャは次のとおりです。

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

Jakobが提供したように、CL引数をすべて1つのリストに含める必要があります。これがcall()の最初の引数です。

他の位置引数は、クラスsubprocess.Popen(http://docs.python.org/library/subprocess.html#subprocess.Popen)の初期化パラメーターに対応します。bufsizeはたまたまその1つです。

于 2012-08-02T15:41:34.013 に答える