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

Python配置文件使用问题:如何正确存储URL变量并解决报错?

解决方案与错误修正

1. 配置文件的正确写法

配置文件存储字符串时,直接用单/双引号包裹内容即可,不需要在值里额外添加引号(代码读取后会自动识别为字符串类型,额外引号会引发语法错误)。按照你的需求修改TGtoken_URL的值:

# configuration.py
config = {
    "Geraet_Name": 'gary2acepc8gb',  # Telegram识别用的设备名称
    "TGtoken_URL": 'https://api.telegram.org/',  # 你需要的基础Telegram URL
    "YellowBellXCoord": 355,  # 黄色铃铛X坐标
    "YellowBellYCoord": 135,  # 黄色铃铛Y坐标
}

2. 主代码的错误修正

你遇到的两个核心问题:Geraet变量未定义、subprocess参数格式错误,修正后的代码如下:

from configuration import config
import subprocess
import datetime
from time import sleep

# 从配置文件读取所需变量
TGtoken = config['TGtoken_URL']  # 配置中已是字符串,无需str转换
Geraet = config['Geraet_Name']  # 补充读取设备名,解决未定义报错

def CurlKillFirefox():
    sleep(2)
    # 拼接curl请求的目标URL(根据需求组合TGtoken、标识和设备名)
    target_url = f"{TGtoken}KillFirefox_{Geraet}"
    # 正确构造curl命令参数列表
    subprocess.call([
        'curl',
        '-X',
        'POST',
        '-d',
        'flow_x',
        target_url
    ])
    # 输出时间戳
    timenow = datetime.datetime.now()
    print("Curl KillFirefox", timenow)
    sleep(1)

3. 错误原因说明

  • 'gary2acepc8gb'未定义:代码中使用了Geraet变量,但未从配置文件的config['Geraet_Name']读取赋值,导致运行时找不到该变量。
  • 语法错误:如果配置文件的URL值里嵌套了引号(比如写成"'https://api.telegram.org/'"),会导致读取后的字符串包含多余引号,触发curl命令的语法错误。配置里直接写纯字符串即可。
  • subprocess参数错误:原代码将元组(TGtoken,'KillFirefox_',Geraet)直接作为curl参数,curl会把它拆成三个独立参数,不符合命令格式,必须先拼接成完整的字符串再传入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:35:11