我正在编写的代码应该与俄语单词和应用程序名称相匹配,并按名称启动最合适的一个。这里原则上是没有问题的,有以下代码进行对比:
from fuzzywuzzy import fuzz
from transliterate import translit
russian_word = translit(input(), 'ru', reversed=True)
data = {'name': '', 'percent': 0}
for app in installed_apps:
percentage = fuzz.ratio(app[:-4], russian_word)
if percentage > data['percent']:
data['percent'] = percentage
data['name'] = app[:-4]
print(data['name'], data['percent'])
但获取已安装应用程序的列表和可执行文件的目录时出现问题。很长一段时间我试图从 gpt 聊天中获取信息,但到处都是。有这样的代码选项:使用winapps、winreg、shutil或pywin32简单地使用os。但我没有尝试的一切,一切都运行不完美,要么程序列表不完整,要么大多数程序找不到该目录,要么它指向所有文件(包括卸载程序)。
也就是说,这个想法是什么?您需要找到用于启动使用任何安装程序(从互联网、蒸汽、史诗游戏、微软商店安装)安装的应用程序的可执行文件,并运行它,只知道它的大概名称。简而言之,获取已安装应用程序的列表以及启动它们的直接路径。
PS操作系统:Windows
这项任务并不容易,但经过一番思考,我发明了一种自行车。看看吧,也许它会适合你))
添加:
所有已安装程序的列表:
在 Windows 中,安装程序是一个抽象概念:安装程序最好仅将已编译的应用程序放置在 programm files* 文件夹中(但不一定是 Minecraft 启动器,它放置在 appdata 中的某处)。另外在安装程序中选择“选择安装路径”,实际上可以是7zip压缩包(也就是说,最后可以将“my_cool_app.bat和unins111.ps1”这样的两个文件复制到随机位置,甚至可以复制到另一个磁盘上。因此,100%的结果并不是通过扫描开始菜单、默认用户和其他桌面的启动快捷方式来获得部分结果。(但这并不能解决我的世界的问题)因此,更好的选择是创建一个流行应用程序及其俄语文本解释的数据库(例如,通过语音启动屏幕保护程序 C:...* .scr)。当然,这需要对文件系统进行全面扫描以查找可执行文件、搜索数据库以及添加/更改数据库的路径。但这并不能解决使用新路径卸载/重新安装的问题。这里还有第三个选项(拐杖):在数据库中搜索可执行文件,同时使用“窗口搜索”——让这种感染发挥其作用。
文字对于通讯来说太大,但不保证得到答复