所以我遇到了使用subprocess.call()的问题,我想我可能只是称错了。我正在使用:
subprocess.call('testingosfile.py')
我得到追溯:
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
subprocess.call('testingosfile.py')
File "C:\Python27\lib\subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child
startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application
,testingosfile.py
的内容是:
print "hello world!"
raw_input('....')
我如何设法让它运行?
提前感谢您的回复。
答案 0 :(得分:2)
错误消息非常有意义 - 使用subprocess
,您只能启动可执行文件。因此,要修复它,您应该启动可执行文件。具体来说,您应该启动Python解释器并告诉它运行您的脚本。像
subprocess.call(['python.exe', 'testingosfile.py'])
应该可以工作,尽管你可能需要提供Python解释器的完整路径(我目前无法测试)。
但是,您是否考虑过导入testingosfile.py
?无论何时导入Python脚本,都会运行该脚本中的所有命令。使用
import testingosfile
在函数内部执行命令的风格很差,但你可以将testingosfile.py
的有用命令打包成某个函数。然后,你可以使用
import testingosfile
位于主脚本的顶部,只要您想要打印Hello World并获取用户的输入,就可以调用该函数。
答案 1 :(得分:1)
尝试subprocess.call(“myfile.ext”,shell = True)