1
xipuxiaoyehua 2023-06-13 16:08:47 +08:00
看起来你遇到的问题是编码问题。因为在计算机中,所有的文本都是以数字形式存储的,编码规则就是用来决定计算机怎么把数字转换成我们看得懂的文本。
可能你的 pyautogui 库是按照特定的编码规则来输入文本的,这个规则和你的文件的编码规则可能不一样,所以当它尝试把你的文件内容输入到另一个文件时,就会出现这种问题。 尝试以下的解决方案: 确保你的源文件( 2.html )和目标文件(需要被写入的文件)使用的是相同的编码。这样当你读取源文件的内容并在目标文件中输入时,应该不会出现字符转换的问题。 在你调用 pyautogui.write 之前,尝试转换你的字符串的编码。你可以使用 Python 的.encode()方法来实现。这个方法可以把一个字符串从一个编码转换到另一个编码。比如,如果你知道你的文件是使用'utf-8'编码的,而 pyautogui 库是使用'latin-1'编码的,你可以试试这样: ```python for line in lines: line = line.replace("ässets", "assets") line = line.encode('latin-1').decode('utf-8') # 试试看这行代码 line = line.replace("content=", " content=").replace("src=", " src=").replace("id=", " id=").replace("href=", " href=").replace("frameborder=", " frameborder=").replace("alt=", " alt=") pyautogui.write(line, interval=0.001) ``` 注意:上述代码只是一个示例,实际中你需要找出 pyautogui 库使用的确切编码,并替换掉'latin-1'。 检查你的 Python 环境的默认编码是否和你的文件的编码匹配。你可以通过以下代码来检查你的 Python 环境的默认编码: ```python import sys print(sys.getdefaultencoding()) ``` 然后根据需要更改 Python 的默认编码。但是注意,更改 Python 的默认编码可能会影响到其他的 Python 程序,所以这个方法需要谨慎使用。 最后,尝试使用 line = line.replace("ässets", "assets")来替换字符可能不会起作用,因为这只会在 Python 的内存中更改字符串,而不会改变它在计算机中存储的数字形式,也就不会影响到编码问题。 希望这些方法可以帮助你解决问题! |
2
Kinnice 2023-06-13 16:15:06 +08:00
encoding='utf-8',确认? 而且最好用 rb 方式读取
|
3
summericy 2023-06-13 16:18:10 +08:00 1
chatgpt 为啥解决不了,我没装对应的包,跑不了,但我觉得 chatgpt 说的好像没啥问题
================= 这个问题可能是由于键盘输入的国家或者地区设置问题导致的。例如,如果你的操作系统将键盘设置为德语或瑞典语,输入 "a"、"u"、"o" 或 "i" 时可能会自动变为 "ä"、"ü"、"ö" 或 "ï"。因为在这些语言中,按键的布局和英语是不一样的。 你可以检查一下你的操作系统的键盘输入设置,确保它们是设置为英语。 然后,你还可以尝试用 pyautogui.write()的代替方法。pyautogui.write()方法是模拟键盘按键,所以它会受到键盘布局设置的影响。你可以使用 pyperclip 库,该库可以将字符串复制到剪贴板,然后使用 pyautogui 来粘贴。以下是一个示例: python Copy code import pyperclip import pyautogui import time time.sleep(3) with open('2.html', 'r', encoding='utf-8') as file: lines = file.readlines() for line in lines: line = line.replace("ässets", "assets") line = line.replace("content=", " content=").replace("src=", " src=").replace("id=", " id=").replace("href=", " href=").replace("frameborder=", " frameborder=").replace("alt=", " alt=") # 将字符串复制到剪贴板 pyperclip.copy(line) # 模拟键盘粘贴操作 pyautogui.hotkey('ctrl', 'v') # 模拟键盘回车操作 pyautogui.press('enter') time.sleep(0.001) # 间隔时间可以根据需要进行调整 这种方法不会受到键盘布局设置的影响,因为它直接从剪贴板进行粘贴。注意确保你安装了 pyperclip 库,如果没有,可以使用 pip install pyperclip 来进行安装。 |
5
tpjaord OP @xipuxiaoyehua 你这有点 gpt 啊 哈哈
|
6
summericy 2023-06-13 17:00:37 +08:00
@tpjaord 用 gpt3 好像确实回答不出来,我用的 gpt4.如果是程序员的话建议买个 gpt4 ,我反正觉得很值得
|
8
AwesomeBing 2023-06-18 09:20:58 +08:00
@tpjaord 问下你是在官网买的 4 还是在第三方网站上买? 官网用着感觉不太顺畅
|