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

如何用PyAutoGUI处理中文文本?原英文适配代码运行报错

解决PyAutoGUI处理中文歌词时的异常问题

错误原因分析

你遇到的str object cannot be interpreted as an integer错误,核心问题是文件打开时的参数传递错误:open函数的第三个位置参数是buffering(要求整数类型),但你传入了字符串'UTF-8',导致参数类型不匹配。此外,PyAutoGUI的typewrite方法通过模拟键盘按键输入中文时,高度依赖系统输入法状态,容易出现输入失败或乱码问题。

修改后的代码

方案1:剪贴板粘贴输入(推荐,稳定支持中文)

通过剪贴板复制粘贴的方式输入中文,彻底规避输入法依赖问题,同时修正文件打开参数:

import pyautogui
import time
import pyperclip

time.sleep(5)
# 用关键字参数正确指定文件编码
with open('/Users/a27/爱.txt', 'r', encoding='UTF-8') as f:
    for line in f:
        # 去除换行符与空行,避免多余操作
        line = line.strip()
        if not line:
            continue
        # 将文本复制到剪贴板
        pyperclip.copy(line)
        # 执行粘贴操作(Mac用command+v,Windows/Linux替换为ctrl+v)
        pyautogui.hotkey('command', 'v')
        pyautogui.press("enter")

方案2:仅修正文件参数(适用于输入法状态可控场景)

如果坚持使用typewrite输入,先修正文件打开参数,同时确保系统输入法处于中文状态:

import pyautogui, time

time.sleep(5)
# 修正编码参数的传递方式
with open('/Users/a27/爱.txt', 'r', encoding='UTF-8') as f:
    for line in f:
        line = line.strip()
        if line:
            pyautogui.typewrite(line)
            pyautogui.press("enter")

关键说明

  • 使用with语句管理文件,会自动完成文件关闭操作,比手动调用f.close()更安全可靠。
  • 剪贴板方案需要先安装pyperclip库:执行pip install pyperclip即可完成安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:57:51