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

Python会员兑换码生成脚本open函数无法创建premiumaccess.txt文件求助

问题排查与修复方案

核心问题点

  • 路径拼接错误:判断文件不存在后创建文件时,你使用的路径f"{appdata}premiumaccess.txt"漏写了路径分隔符,拼接后路径完全错误,文件会生成到错误的位置,而非你预期的APPDATA目录下。
  • 文件内容判断逻辑错误:你直接使用if '1' in file判断内容,这里file是文件对象而非文件内容,该判断逻辑永远不成立,会导致写入分支永远不会触发。
  • 路径处理不规范:手动拼接Windows路径极易出现分隔符遗漏、拼写错误的问题,你已经导入了Path类,可以直接用它处理路径,彻底避免手动拼写错误。
  • 操作冗余:以w模式打开文件时会自动清空原有内容,不需要额外调用truncate()方法。

修复后完整代码

import requests
import os
import random
from pathlib import Path

# 存储兑换码的txt文件地址
url = 'a website with all of the premium codes in a txt file'
# 增加请求异常处理,避免网络问题导致脚本崩溃
try:
    r = requests.get(url, timeout=10)
    r.raise_for_status()
except requests.exceptions.RequestException as e:
    print(f"获取兑换码失败:{e}")
    exit()

code = r.text.split()
appdata = os.getenv("APPDATA")
# 用Path处理路径,自动适配系统分隔符,不会出现拼写错误
data_path = Path(appdata) / "premiumaccess.txt"

# 文件不存在时自动创建
if not data_path.exists():
    data_path.touch()

# 读取文件内容后再判断激活状态
with open(data_path, 'r', encoding='utf-8') as f:
    content = f.read().strip()
if content == '1':
    print("你已经领取过高权限兑换码...")
else:
    print(f'{random.choice(code)}\n\n这是你的AccTools高级会员兑换码!请勿分享给他人,使用愉快!')
    # w模式自动清空原有内容,直接写入即可
    with open(data_path, 'w', encoding='utf-8') as f:
        f.write("1")

如果你需要保留原英文提示,替换对应print内容即可。

额外注意事项

  • 你当前的实现逻辑存在安全风险:直接将所有兑换码明文存储在公开可访问的txt文件中,任何人抓包都可以获取到全部兑换码,建议改为接口校验兑换码有效性,不要把全量兑换码下发到客户端。
  • 打包为exe后若出现权限问题,右键选择「以管理员身份运行」即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:06:03