如何利用python将中英文混合的文本输入到输入框处
以下是可以输出英文到输入框的代码,但是处理不了中文:# !/usr/bin/env python3
# _*_ coding:utf-8 _*_
"""
@File : AutoInput.py
@Project: AutoInput
@Time : 2023/5/10 22:15
@Author : Gag
@Software : PyCharm
@License: (C)Copyright 2018-2028, Taogroup-NLPR-CASIA
@Last Modify Time @Version @Desciption
-------------------- -------- -----------
2023/5/10 22:15 1.0 None
"""
# 监听键盘以达到快捷键启动程序
import pythoncom
import PyHook3
# 用户选择文件
import tkinter as tk
from tkinter import filedialog
# 用于判断文件的编码格式
import chardet
# pip install chardet -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# 用于模拟键盘输入
from pymouse import PyMouse
from pykeyboard import PyKeyboard
# pip install PyUserInput -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
import pypinyin
# pip install pypinyin -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
import time
# 判断当前输入的文字是否是中文
def is_chinese(word):
for ch in word:
if '\u4e00' <= ch <= '\u9fff':
return True
return False
# 判断文件编码格式
def get_encoding(file):
with open(file, 'rb') as f:
tmp = chardet.detect(f.read())
return tmp['encoding']
# 监听键盘
def onKeyboardEvent(event):
'''
# 监听键盘事件
print("MessageName:", event.MessageName)
print("Message:", event.Message)
print("Time:", event.Time)
print("Window:", event.Window)
print("WindowName:", event.WindowName)
print("Ascii:", event.Ascii, chr(event.Ascii))
print("Key:", event.Key)
print("KeyID:", event.KeyID)
print("ScanCode:", event.ScanCode)
print("Extended:", event.Extended)
print("Injected:", event.Injected)
print("Alt", event.Alt)
print("Transition", event.Transition)
print("---")
'''
# 通过 键盘上的 Insert 按键 触发自动输入
if event.Key == "Insert":
# 打开文件
# 创建对象
root = tk.Tk()
root.withdraw()
# 获取文件路径
FilePath = filedialog.askopenfilename()
print(FilePath)
# 获取文件编码格式
Encoding = get_encoding(FilePath)
print("%s的文件编码格式是%s:" % (FilePath, Encoding))
# 创建文件对象
f = open(FilePath, 'r', encoding=Encoding)
lines = f.read()
# print(lines)
# 将文件内容输出到指定地点
# 创建鼠标键盘对象
m = PyMouse()# 建立鼠标对象
k = PyKeyboard()# 建立键盘对象
# 获取文字输入位置
location = m.position()
m.click(location, location)
# 自动输入部分
k.type_string(lines)
#关闭文件
f.close()
# 不要修改此返回值,否则将对按键进行拦截
return True
def main():
# 创建一个“钩子”管理对象
hm = PyHook3.HookManager()
# 监听所有键盘事件
hm.KeyDown = onKeyboardEvent
# 设置键盘“钩子”
hm.HookKeyboard()
# 进入循环,如不手动关闭,程序将一直处于监听状态
pythoncom.PumpMessages()
if __name__ == "__main__":
main()
我该如何修改代码才能处理中文字符?
我没看明白,你要把中英文输入到输入框吗,代替键盘输入吗?直接用keyboard库啊,中英文都行。 可以在代码中加上以下两行注释以支持中文输入:
# !/usr/bin/env python3
# _*_ coding:utf-8 _*_
将这两行代码添加到脚本的最上方,确保 Python 解释器知道脚本包含 UTF-8 编码的源文件。
有用请设置最佳答案 sfqxx 发表于 2023-5-11 19:13
可以在代码中加上以下两行注释以支持中文输入:
不是让python输出中文 sfqxx 发表于 2023-5-11 19:13
可以在代码中加上以下两行注释以支持中文输入:
这是py2.x 才用的套路 3.x 就不用了 wp231957 发表于 2023-5-12 14:16
这是py2.x 才用的套路 3.x 就不用了
懂了 一阵三十六 发表于 2023-5-12 12:57
不是让python输出中文
f = open(FilePath, 'r', encoding='utf-8') 您可以在Python代码中加入万能注释,例如: #coding = < gbk >,以解决在Python3中的中文字符编码问题. 另外,您可以使用Python的自然语言处理工具包NLTK来处理中文文本. 此外,还有其他方法可以解决Python处理中文的问题,如将输入的文本解码为unicode编码,然后输出时再编码成所需编码. 如果您需要更多帮助,请告诉我。 https://fishc.com.cn/forum.php?mod=viewthread&tid=226116 还是用pyautogui把,pyhook3太旧了,得py37,我们不好帮你调试{:10_277:} 6,这都能最佳答案 歌者文明清理员 发表于 2023-5-15 18:21
还是用pyautogui把,pyhook3太旧了,得py37,我们不好帮你调试
你的积分怎么超过我了 sfqxx 发表于 2023-5-15 20:00
你的积分怎么超过我了
一样 歌者文明清理员 发表于 2023-5-15 20:00
一样
刚加的
你是不是让小号给你评分了;-) sfqxx 发表于 2023-5-15 20:01
刚加的
你是不是让小号给你评分了;-)
没 歌者文明清理员 发表于 2023-5-15 20:04
没
《没》
页:
[1]