我有一个我在命令行中调用的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]
答案 0 :(得分:5)
subprocess.call(["php", "-f", "importTextFile.php", "--user=X", "--title="'%s' % name, file])
应该解决它
答案 1 :(得分: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)
你会希望你的CL参数都在一个列表中 - 就像Jakob提供的那样。这是call()的第一个参数。
其他位置参数对应于类subprocess.Popen(http://docs.python.org/library/subprocess.html#subprocess.Popen)的初始化参数。 bufsize恰好是其中之一。