【发布时间】:2022-07-19 18:36:50
【问题描述】:
我目前正在使用具有以下代码的 python 脚本。它会打开一个包含 JSON 文本的文件并从中确定一个值。
browseFiles()
def browseFiles():
global fileName
fileName = filedialog.askopenfilename(title = "Select a File", filetypes = (("All Files","*.*")))
# Open the File in Read Mode
fileFile = open(fileName, "r")
# Read the file
fileContent = fileFile.read()
# Render the JSON
fileJSON = json.loads(fileContent)
# Determine the ID
myID = fileJSON["key"]
# Update the Status
windowRoot.title(myID)
... remaining code
fileFile.close()
但是,每次打开程序,然后导航到它,不太方便。
Windows 在文件资源管理器中具有“打开方式”功能,我们可以在其中右键单击文件并使用 Word 等应用程序打开它。
如何在 Python 脚本中实现这一点?我是否应该考虑首先创建这个脚本的 .exe,如果是,那么哪个库最适合这个? (考虑到它是一个非常小而简单的实用程序)
一些可能不需要的额外信息:我将 Tkinter 用于 GUI。
(顺便说一句,如果这个问题已经存在于 StackOverFlow 或任何其他网站上,那么请评论链接而不是仅仅将其标记为重复。我尝试了很多搜索,但没有找到任何东西)
问候, 万岁。
【问题讨论】:
-
缩进好像不对。
-
不清楚你到底要什么。在您提供的脚本中,python 本身正在打开文件并读取文件的内容。您是否尝试使用 python 打开不同的程序,然后使用该程序打开文件?
-
@G.Anderson 是的。用户必须打开 python myApp.py,它会启动一个 Tkinter 窗口,该窗口打开文件资源管理器的“打开方式”对话框,用户在其中选择文件,然后单击“打开”返回文件名。然后,python 自己读取文件并带上内容。我不希望用户打开我的脚本并使用打开对话框。 Windows 具有“打开方式”功能,我们可以直接在文件资源管理器中右键单击我们的文件,并将我的应用程序列为选项。因此,文件名会自动作为参数传递给我的脚本,而不是整个“打开方式”。
-
把它想象成 Word 的工作原理。您必须打开 Word,转到打开文档,导航到您的文档,然后打开它。然后word打开文档。这不是很方便,对吧?所有人宁愿去文件资源管理器并从那里启动文档,直接在 Word 中打开。这基本上就是我想要在这里实现的目标。
标签: python windows windows-explorer microsoft-file-explorer windows-explorer-integration