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

读取TXT行转int触发ValueError,PyAutoGUI坐标点击程序故障求助

问题解决:处理含坐标与特定字符串的TXT文件时的ValueError错误

问题根源

你的代码里两个if是独立判断逻辑:当处理[mail]行时,第一个if会执行,但第二个if不满足,程序会直接跳进else分支,试图把[mail]转成整数坐标,这肯定会触发类型转换错误。另外,你用固定位置切片解析坐标的方式太死板,一旦坐标位数变化(比如x是两位数),也会出问题。

修复后的代码

import pyautogui
import time

with open('file.txt', 'r') as coords:
    line = coords.readline()
    while line:
        line = line.strip()  # 先清掉首尾的空格、换行符,避免干扰判断
        if "[mail]" in line:
            # 这里写mail相关操作
            print('true')
        elif "[sifre]" in line:
            # 这里写sifre相关操作
            print("also true")
        else:
            # 更可靠的坐标解析方式
            cleaned_line = line.strip('() ')  # 去掉括号和多余空格
            x_str, y_str = cleaned_line.split(',')
            xcoords = int(x_str.strip())
            ycoords = int(y_str.strip())
            pyautogui.click(x=xcoords, y=ycoords)
            time.sleep(2)
        line = coords.readline()  # 读取下一行,避免死循环

关键修改点

  • 把第二个if改成elif,确保每行只会进入一个处理分支,不会在匹配[mail]后还去解析坐标。
  • 对每行先执行strip(),清除换行符、首尾空格,避免这些字符干扰判断和解析。
  • 解析坐标时用split(',')分割,不再依赖固定位置切片,适配不同位数的坐标值。
  • 循环末尾加上line = coords.readline(),保证程序能逐行处理整个文件,不会卡在某一行无限循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:05:22