gpt4 book ai didi

python - 如何在 python 中一个接一个地运行多个可执行文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:53 28 4
gpt4 key购买 nike

我对 Python 还是很陌生,并且仍在全神贯注于它能做的一切。我目前正在开发一个小应用程序来帮助我的工作。它有一个图形菜单,可以让我选择要在 PC 上安装的应用程序。我遇到的问题是一些按钮有两个运行的安装程序(32 位和 64 位)。我需要程序在开始下一个之前等待一个完成。我该怎么做?

这是代码...

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")

这是我从史蒂夫那里进行更改后编辑的代码...也是我在运行安装程序后在 python 终端中收到的错误消息(这似乎有效)。

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'

谢谢!

最佳答案

在你使用 os.startfile(cmd) 的任何地方使用 subprocess.call(cmd) .在脚本的顶部放置

import subprocess

并改变所有有的地方

os.startfile("C:\\Users\\Erik\\Desktop\\whatever.exe")

subprocess.call("C:\\Users\\Erik\\Desktop\\whatever.exe")

为您的脚本使用 os.startfile 的问题是它没有阻塞。这意味着您的脚本不会等待用户与弹出的安​​装程序进行交互;它一直在运行,并且可以同时弹出多个安装程序。 subprocess.call 阻塞。这意味着它会等待您启动的任何内容完成,并且您的脚本会在安装程序关闭时立即重新启动。

关于python - 如何在 python 中一个接一个地运行多个可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741316/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com