如何用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
相关产品推荐
相关产品推荐

