You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Tkinter filedialog选择Steam快捷方式返回错误

解决Steam快捷方式选择报错及读取问题

1. 修正文件选择器的类型过滤

当前代码的filetypes虽包含*.*,但显式添加.url类型能让选择器更精准识别这类文件,规避系统层面的识别异常:

filename_path = filedialog.askopenfilename(
    initialdir="/", 
    title="Select File", 
    filetypes=(
        (".exe files", "*.exe"), 
        (".url shortcuts", "*.url"), 
        ("all files", "*.*")
    )
)

2. 处理Steam .url文件的读取逻辑

Steam生成的.url本质是文本文件,你需要读取其内容获取游戏启动链接,不能直接使用文件路径:

import os

if filename_path.endswith(".url"):
    with open(filename_path, 'r', encoding='utf-8') as f:
        for line in f:
            if line.startswith("URL="):
                steam_link = line.strip().split("=", 1)[1]
                # 后续用这个steam_link创建指向Steam游戏的快捷方式
                print(f"Steam游戏启动链接: {steam_link}")
                break

3. 解决权限类报错

若仍出现报错,大概率是文件权限问题:

  • 右键以管理员身份运行你的Python脚本
  • 确保Steam安装目录和快捷方式所在文件夹有可读权限
  • 可先把Steam快捷方式复制到桌面再进行测试,避免访问Program Files这类受保护目录下的文件

4. 区分Steam的.lnk与.url快捷方式

Steam游戏快捷方式通常是.lnk格式(而非.url),若选择的是.lnk文件,需用pywin32库读取其目标路径:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(filename_path)
print(f"快捷方式目标路径: {shortcut.Targetpath}")
print(f"快捷方式启动参数: {shortcut.Arguments}")

(需先安装pywin32:pip install pywin32)

内容的提问来源于stack exchange,提问作者coob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:09:31