我对Python仍然很陌生,现在仍然对自己能做的所有事情都很满意。我目前正在制作一个小应用程序来帮助我工作。它有一个图形菜单,可以让我选择在PC上安装的应用程序。我遇到的问题是一些按钮有两个安装程序(32和64位)。我需要程序在开始下一个之前等待一个完成。我该怎么做呢?如何在Python中一个接一个地运行多个可执行文件
下面的代码...
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.label.setText(_translate("Form", "What would you like to install?", None))
self.adobe_reader.setText(_translate("Form", "Adobe Reader", None))
self.flash.setText(_translate("Form", "Flash", None))
self.java_7.setText(_translate("Form", "Java 7", None))
self.java_8.setText(_translate("Form", "Java 8", None))
self.adobe_reader.clicked.connect(self.adobe)
self.flash.clicked.connect(self.flash13)
self.java_7.clicked.connect(self.java7)
self.java_8.clicked.connect(self.java8)
def adobe(self):
os.startfile("C:\\Users\\Erik\\Desktop\\install_reader_11.exe")
def flash13(self):
os.startfile("C:\\Users\\Erik\\Desktop\\install_flash_13_IE.exe")
os.startfile("C:\\Users\\Erik\\Desktop\\install_flash_13_nonIE.exe")
def java7(self):
os.startfile("C:\\Users\\Erik\\Desktop\\install_java-7u71-x32.exe")
os.startfile("C:\\Users\\Erik\\Desktop\\install_java-7u71-x64.exe")
def java8(self):
os.startfile("C:\\Users\\Erik\\Desktop\\install_java-8u25-x32.exe")
os.startfile("C:\\Users\\Erik\\Desktop\\install_java-8u25-x64.exe")
下面是编辑的代码后,我从史蒂夫的变化......也是错误的消息,我得到的蟒蛇终端运行安装程序(这似乎工作岗位)。
def adobe(mycmd):
mycmd = r"C:\Users\Erik\Desktop\install_reader_11.exe"
try:
retcode = call(mycmd,shell = True)
if retcode < 0:
print >>sys.stderr, "Child was terminated by signal", -retcode
else:
print >>sys.stderr, "Child returned", retcode
except OSError as e:
print >>sys.stderr, "Execution failed:", e
retcode = -1
return retcode
def flash13(mycmd):
mycmd = r"C:\Users\Erik\Desktop\install_flash_13_IE.exe"
try:
retcode = call(mycmd,shell = True)
if retcode < 0:
print >>sys.stderr, "Child was terminated by signal", -retcode
else:
print >>sys.stderr, "Child returned", retcode
except OSError as e:
print >>sys.stderr, "Execution failed:", e
retcode = -1
return retcode
错误消息...
print >> sys.stderr, "Child returned", retcode
TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and
'_io.TextIOWrapper'
谢谢!
感谢您的答复。当我尝试用subprocess.call启动一个exe文件时,我得到了这个 - “操作系统错误:[WinError 740]请求的操作需要提升” 我假设这意味着他们需要管理员权限?我是我个人电脑上的管理员,通常没有问题。 – sloppyfrenzy 2014-11-04 17:37:04
@sloppyfrenzy奇怪。当我尝试安装程序时,安装程序正常启动,要求用户提升权限。你可以以管理员身份启动你的python脚本,但这不是很优雅。 – 2014-11-04 17:44:07
奇怪。我正在运行Win 8。1如果这有什么区别。当我右键单击python文件时,我没有看到以管理员身份运行的选项。子进程比一般的操作系统更好用吗? – sloppyfrenzy 2014-11-04 18:15:28