如何在Python中打开任何程序?
我搜索了很多,找到了用python打开程序的不同方法 例如:如何在Python中打开任何程序?,python,python-3.x,python-2.7,operating-system,Python,Python 3.x,Python 2.7,Operating System,我搜索了很多,找到了用python打开程序的不同方法 例如: import os os.startfile(path) # I have to give a whole path that is not possible to give a full path for every program/software in my case. 我目前正在使用的第二个 import os os.system(fileName+'.exe') 在第二个例子中,问题是:- 如果我想打开calculato
import os
os.startfile(path) # I have to give a whole path that is not possible to give a full path for every program/software in my case.
我目前正在使用的第二个
import os
os.system(fileName+'.exe')
在第二个例子中,问题是:-
.exe
文件名为calc.exe
,这也适用于任何其他程序(我不知道每个程序的所有.exe文件名)calc.exe
你明白了)
如果你想看看
注意:我需要通用解决方案。总有:
from subprocess import call
call(["calc.exe"])
这应该允许您使用dict、list或set来保存程序名并随意调用它们。David Cournapeau和chobok也介绍了这一点。您可以尝试使用os.walk:
import os
exe_list=[]
for root, dirs, files in os.walk("."):
#print (dirs)
for j in dirs:
for i in files:
if i.endswith('.exe'):
#p=os.getcwd()+'/'+j+'/'+i
p=root+'/'+j+'/'+i
#print(p)
exe_list.append(p)
for i in exe_list :
print('index : {} file :{}'.format(exe_list.index(i),i.split('/')[-1]))
ip=int(input('Enter index of file :'))
print('executing {}...'.format(exe_list[ip]))
os.system(exe_list[ip])
os.getcwd()+'/'+i
将文件路径前置到从根开始的exe文件exe_list.index(i),i.split('/')[-1]
只获取filename.exe
exe
文件的整个路径pip install winapps
然后使用图书馆:
# This will give you list of installed applications along with some information
import winapps
for app in winapps.list_installed():
print(app)
如果要搜索应用程序,可以执行以下简单操作:
application = 'chrome'
for app in winapps.search_installed(application):
print(app)
看来你没有读我的全部问题(我想自动化),我读了你的全部问题。它的自动化部分应该不那么难理解。使用dict或列表列表,您可以根据您希望如何通过tkinter接口、PyQT接口、wxPython或命令行与之交互,轻松地实现自动化。如果您不确定如何做到这一点,您可能需要查看操作系统模块以及如何跟踪程序目录。Python将把所有这些值作为字符串拉入程序,这些字符串很容易通过各种类型的数据结构(dict、list、set、tuple等)传递。你的问题很难回答broad@RajnishRajput您没有提到任何关于自动化的内容,也没有提到您希望自动化的内容。可能重复的内容看起来您在这里问了几个问题:1)如何在没有完整路径或不知道程序是否以“exe”结尾的情况下启动程序?2) 如何获取已安装程序的列表?这里的问题是,这是一个过于宽泛的问题。您将看到扫描文件系统以查找后者的幼稚尝试,但不应将其用作解决方案。您可以使用subprocess.call()但传递shell=True以使其查看路径和COMSPEC。你应该把问题缩小范围。你们想实现什么?我想把所有安装的程序都放到用户电脑里,并随时给他们打电话。但如果可能的话,我不想手动执行,就像我不想给路径或.exe文件名硬编码一样?我建议不要这样做。你永远不知道一个随机的可执行文件能做什么。它可能导致数据损坏、数据丢失、可能包含病毒、可能是用户不想运行的服务等。我会重新考虑您的策略。很抱歉是的,我可以理解,但我会在运行前检查可执行文件。:)我不会只运行所有的.exe文件,我只需要它们。仍然会得到一个空白数组,因为当我放入索引0时,它给了我
索引器:列表索引超出范围对于exe列表中的I:print('index:{}文件:{})。format(exe_list.index(I),I.split('/')[-1])
这会给出任何输出吗?