从另一个程序运行外部python程序

时间:2013-12-11 06:01:50

标签: python

我在ubuntu的 /home/laxmi/Desktop/gold/gold.py 中有一个python程序 gold.py 。 我有一个python程序test.py as 的 test.py

import subprocess
subprocess.Popen("python", "Desktop/gold/gold.py")

我希望这个程序调用gold.py程序并显示gold.py

的结果

错误

 File "/usr/lib/python2.7/subprocess.py", line 660, in __init__
raise TypeError("bufsize must be an integer")

1 个答案:

答案 0 :(得分:2)

你得到TypeError。由于您没有传递关键字参数,因此第二个参数将被视为缓冲区大小,该大小必须是整数。

更改:

subprocess.Popen("python", "Desktop/gold/gold.py") 

要:

subprocess.Popen("python Desktop/gold/gold.py")

以下是subprocess.Popen的文档。第一个参数是唯一需要的参数args

  

args应该是一系列程序参数,否则就是一个   串。默认情况下,要执行的程序是args中的第一项   如果args是一个序列。如果args是一个字符串,则解释为   平台依赖并在下面描述。查看shell和可执行文件   与默认行为的其他差异的参数。除非   除非另有说明,建议将args作为序列传递。

NB:

  

如果传递单个字符串,则shell必须为True(参见下文)或   否则字符串必须简单地命名要执行的程序而不用   指定任何参数。

所以,如果需要这样做,你可以这样做:

subprocess.Popen("python Desktop/gold/gold.py", shell = True)

请在提供的链接中阅读有关此内在的安全风险。