2013-11-24 111 views
0

我在Python中处于非常基础的级别,我正在尝试学习如何使用子进程模块。我有一个简单的计算器程序,名为x.py,它接受一个数字,乘以2,然后返回结果。我正在尝试使用以下两行代码来执行IDLE中的简单程序,但是出现错误。数字5是我试图提供给x.py来获得结果的数字。有人会帮助我理解我做错了什么,并帮助我解决问题吗?谢谢!在Python中使用subprocess.check_output时出错

import subprocess 

result = subprocess.check_output(["C:\\Users\\Kyle\\Desktop\\x.py",5]) 

Traceback (most recent call last): 
File "<pyshell#3>", line 1, in <module> 
result = subprocess.check_output(["C:\\Users\\Kyle\\Desktop\\x.py",5]) 
File "C:\Python27\lib\subprocess.py", line 537, in check_output 
process = Popen(stdout=PIPE, *popenargs, **kwargs) 
File "C:\Python27\lib\subprocess.py", line 679, in __init__ 
errread, errwrite) 
File "C:\Python27\lib\subprocess.py", line 855, in _execute_child 
args = list2cmdline(args) 
File "C:\Python27\lib\subprocess.py", line 587, in list2cmdline 
needquote = (" " in arg) or ("\t" in arg) or not arg 
TypeError: argument of type 'int' is not iterable 

回答

0

5作为一个字符串:

import sys 
result = subprocess.check_output([sys.executable, "C:\\Users\\Kyle\\Desktop\\x.py", '5']) 
+0

我试图通过5为一个字符串,我收到一个新的,有趣的错误! 回溯(最近最后调用): 文件 “”,第1行,在 结果= subprocess.check_output([ “C:\\用户\\凯尔\\桌面\\ x.py”,“5 ']) 文件“C:\ Python27 \ lib \ subprocess.py”,第537行,在check_output中 process = Popen(stdout = PIPE,* popenargs,** kwargs) 文件“C:\ Python27 \ lib \ subprocess文件“C:\ Python27 \ lib \ subprocess.py”,行896,在_execute_child中 startupinfo) WindowsError:[错误193]%1不是有效的Win32应用程序 – Thetravellingfool

+0

@Thetravellingfool尝试我更新的解决方案,并确保你已经添加了'python' t o''path'环境变量设置('C:\\ Python27') –

+0

我感谢您的帮助!我将Python添加到了路径环境变量设置中,并使用了您建议的代码,这给了我另一个奇妙的错误。有什么想法吗? 回溯(最近通话最后一个): 文件 “”,1号线,在 结果= subprocess.check_output([sys.executable,“C:\\ \\用户\\凯尔桌面\\ x.py “'','5']) CalledProcessError(retcode,cmd,output = output) CalledProcessError:Command'['C:\\'','5']) 文件”C:\ Python27 \ lib \ subprocess.py“,第544行,check_output Python27 \\ pythonw.exe','C:\\ Users \\ Kyle \\ Desktop \\ x.py','5']'返回的非零退出状态1 – Thetravellingfool

相关问题