Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python调用php脚本(子流程)_Php_Python_Process_Subprocess - Fatal编程技术网

从python调用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脚本,如下所示:

$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)