如何在tkinter中获取右键「打开方式」启动程序对应的文件路径
实现思路
操作系统通过「打开方式」启动程序时,会把被选中的文件绝对路径作为命令行参数传递给程序,你只需要在Python代码中读取命令行参数即可拿到对应路径。
具体实现步骤
- 导入
sys模块读取命令行参数:sys.argv是存储命令行参数的列表,默认第一个元素是你的程序本身的路径,从第二个元素开始就是被打开的文件路径,单次右键打开单个文件时直接取sys.argv[1]即可。 - 路径有效性校验:避免程序被直接双击打开时没有参数报错,要先判断
sys.argv的长度是否大于1。
完整代码示例
import sys import tkinter as tk from tkinter import messagebox root = tk.Tk() root.title("我的文件查看程序") # 获取文件路径 file_path = "" if len(sys.argv) > 1: file_path = sys.argv[1] # 此处可替换为你自己的文件处理逻辑 try: with open(file_path, 'r', encoding='utf-8') as f: content = f.read() text = tk.Text(root) text.insert(tk.END, content) text.pack(fill=tk.BOTH, expand=True) except Exception as e: messagebox.showerror("错误", f"文件打开失败:{str(e)}") else: messagebox.showinfo("提示", "请通过右键文件选择「打开方式」启动本程序") root.mainloop()
注意事项
- 如果你需要支持同时选中多个文件右键打开,遍历
sys.argv[1:]即可拿到所有选中的文件路径 - 程序打包成exe后逻辑完全通用,不需要额外修改,打包后直接手动关联到对应文件类型的打开方式即可正常使用
内容的提问来源于stack exchange,提问作者Lyk Koss
相关产品推荐
相关产品推荐

