搜索到的值怎么在前面添加序号
本帖最后由 qaz1234 于 2021-8-9 13:49 编辑E:\firefox download\oss-aliyun-1.2.1.0.exe
D:\Program Files\oss-browser-win32-x64\oss-browser.exe
E:\Work\ALIYUN\software\ossutil64\ossutil64.exe
搜索到这三个路径,前面怎么添加序号来选择运行哪个exe 存放在列表里?, 本帖最后由 qaz1234 于 2021-8-9 13:59 编辑
wp231957 发表于 2021-8-9 13:55
存放在列表里?,
没有在列表里,是搜索本地.exe出来的路径,搜索是调用的everything-SDK qaz1234 发表于 2021-8-9 13:57
没有在列表里,是搜索本地.exe出来的路径,搜索是调用的everything-SDK
你要操作everything的结果吗 基本上无法实现 wp231957 发表于 2021-8-9 14:00
你要操作everything的结果吗 基本上无法实现
我是想操作我搜索出来的这三个路径,使这三个路径可以选择 qaz1234 发表于 2021-8-9 14:08
我是想操作我搜索出来的这三个路径,使这三个路径可以选择
你在啥里操作这三个路径 要是你自己的app 还可以考虑 要是别人的 基本就不用考虑 wp231957 发表于 2021-8-9 14:17
你在啥里操作这三个路径 要是你自己的app 还可以考虑 要是别人的 基本就不用考虑
我可能没说清楚,我贴一下代码吧。
我的目的是搜索我要打开的程序的exe,然后打开这个程序。windows的搜索太慢,所以我调用everything来搜索,现在的问题是我搜索到的结果有三个,我怎么选择我需要的那个结果
例如我搜索到了这三个路径,我想选择第二个打开
E:\firefox download\oss-aliyun-1.2.1.0.exe
D:\Program Files\oss-browser-win32-x64\oss-browser.exe
E:\Work\ALIYUN\software\ossutil64\ossutil64.exe
from ctypes import windll,byref,create_unicode_buffer
#以下代码调用everything-SDK
def search_files(file):
Search = windll.LoadLibrary(r'E:\python\test\Everything-SDK\dll\everything64.dll')
strBuff = create_unicode_buffer(255)
Search.Everything_SetSearchW(file)
Search.Everything_QueryW(True)
Results = Search.Everything_GetNumResults()
for index in range(Results):
Search.Everything_GetResultFullPathNameW(index,byref(strBuff),len(strBuff))
yield strBuff.value
del Search
del strBuff
#执行搜索
a = input("请输入程序名:")
if __name__=='__main__':
for file in search_files(a):
#path = file
#b = os.path.dirname(path) #返回文件路径,不显示程序名
#print (b)
if file.endswith('.exe'): #判断名称的结尾是否是.exe
print (file) qaz1234 发表于 2021-8-9 14:34
我可能没说清楚,我贴一下代码吧。
我的目的是搜索我要打开的程序的exe,然后打开这个程序。windows的 ...
改下后面这部分,看下这样可以不?
file_list = search_files(a)
for idx in range(len(file_list)):
#path = file
#b = os.path.dirname(path) #返回文件路径,不显示程序名
#print (b)
if file.endswith('.exe'): #判断名称的结尾是否是.exe
print ("{}、{}".format(idx,file_list))
index = int(input("请输入序号以运行程序:"))
os.system("start {}".format(file_list)) 本帖最后由 qaz1234 于 2021-8-9 15:34 编辑
2012277033 发表于 2021-8-9 14:56
改下后面这部分,看下这样可以不?
改成这样吗
#执行搜索
a = input("请输入程序名:")
file_list = search_files(a)
for idx in range(len):
if file_list.endswith('.exe'): #判断名称的结尾是否是.exe
print ("{}、{}".format(idx,file_list))
index = int(input("请输入序号以运行程序:"))
os.system("start {}".format(file_list))
报这个错:
Traceback (most recent call last):
File "E:/python/test/find-基于everthing搜索文件.py", line 26, in <module>
for idx in range(len(file_list)):
TypeError: object of type 'generator' has no len()
#执行搜索
a = input("请输入程序名:")
if __name__=='__main__':
exe_list =
print('--代号--|-------程序名------')
print('\n'.join())
print('---------------------------')
code = input('选择你想要执行的程序代号:')
import os
os.system(f"start {exe_list}") 阿奇_o 发表于 2021-8-9 16:19
感谢大佬!!! 感谢各位大佬帮忙!!!
页:
[1]