我在命令行中调用了一个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]
subprocess.call(["php", "-f", "importTextFile.php", "--user=X", "--title="'%s' % name, file])
应该修复它
由于文档混乱,这里有一个混乱的解释。
发件人:http://docs.python.org/library/subprocess.html#frequently-使用的参数
为了支持各种各样的用例,Popen构造函数(和便利函数)接受大量可选参数。对于大多数典型的用例,可以安全地保留其中许多参数默认值。最常用的论据是:
发件人:http://docs.python.org/library/subprocess.html#subprocess.call
call()的签名是:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
你会希望你的CL论点都在一个单一的列表中——正如Jakob提供的那样。这是调用()的第一个参数。
其他位置参数对应于类子进程的初始化参数。Popen(http://docs.python.org/library/subprocess.html#subprocess.Popen)。bufsize恰好是其中之一。