从python调用php脚本(子流程)
我在命令行中调用了一个php脚本,如下所示:从python调用php脚本(子流程),php,python,process,subprocess,Php,Python,Process,Subprocess,我在命令行中调用了一个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) 我发现以下错误:
$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
用法:php[options][f][-][args…]
php[options]-r[-][args…]
php[options][-B]-R[-E][-][args…]
php[options][-B]-F[-E][-][args…]
php[选项]-[args…]
php[选项]-a
edit2:我改变了参数的顺序,它可以工作:
[“php”、“php/script/path”、“-f”、“-user”、“X”、“-title”、X、文件]
subprocess.call(["php", "-f", "importTextFile.php", "--user=X", "--title="'%s' % name, file])
应该解决这个问题由于文档混乱,这里有一个混乱的解释
发件人:
为了支持各种各样的用例,Popen构造函数(和
便利函数)接受大量可选参数。
对于大多数典型的用例,这些参数中的许多都可以安全地保留
按其默认值。最常用的参数
它们是:
发件人:
call()的签名是:
正如Jakob提供的那样,您需要将CL参数全部放在一个列表中。这是调用()的第一个参数
其他位置参数对应于类subprocess.Popen()的初始化参数。bufsize恰好是其中之一。您有什么理由不能在python中这样做?
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)