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:感谢它的工作原理,但我遇到了 args 的问题,因为出现了使用消息:

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,文件]

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)

你会希望你的 CL 参数都在一个列表中 - 正如 Jakob 提供的那样。这是 call() 的第一个参数。

其他位置参数对应于类 subprocess.Popen ( http://docs.python.org/library/subprocess.html#subprocess.Popen ) 的初始化参数。bufsize 恰好是其中之一。

于 2012-08-02T15:41:34.013 回答