Python 在tkinter脚本中使用pyperclip保存到剪贴板时进行编码
我正在用Python 3.5集成一个客户端,可以用来从站点检索完成的翻译作业。出于可用性原因,我决定使用按钮将翻译后的内容复制到剪贴板。根据翻译是纯文本还是保存在文件中,按钮显示“下载”或“复制到剪贴板” 这是工作的大部分-我可以复制和粘贴英文文本没有问题,点击按钮,然后粘贴到一个文本编辑器的内容 不幸的是,我在处理德语(像ä、ö和ü之类的东西)和日语时会遇到一些古怪的角色Python 在tkinter脚本中使用pyperclip保存到剪贴板时进行编码,python,tkinter,pyperclip,Python,Tkinter,Pyperclip,我正在用Python 3.5集成一个客户端,可以用来从站点检索完成的翻译作业。出于可用性原因,我决定使用按钮将翻译后的内容复制到剪贴板。根据翻译是纯文本还是保存在文件中,按钮显示“下载”或“复制到剪贴板” 这是工作的大部分-我可以复制和粘贴英文文本没有问题,点击按钮,然后粘贴到一个文本编辑器的内容 不幸的是,我在处理德语(像ä、ö和ü之类的东西)和日语时会遇到一些古怪的角色 def retrieveJobs(self): availableJobIDs = gengo.getTra
def retrieveJobs(self):
availableJobIDs = gengo.getTranslationJobs(status='reviewable')['response']
text_count = 0
text_dict = {}
file_count = 0
file_dict = {}
for i in range(len(availableJobIDs)):
job = gengo.getTranslationJob(id=availableJobIDs[i]['job_id'])['response']['job']
title = job['slug']
titleLabel = tk.Label(self, text=title)
titleLabel.grid(row=i+3, sticky=tk.E)
if 'file_url_tgt' in job.keys():
link = job['file_url_tgt']
file_dict[file_count] = link
linkButton = tk.Button(self, text='ダウンロード',
command=lambda file_count=file_count: urllib.request.urlopen(url=file_dict[file_count]))
linkButton.grid(row=i+3, column=1, sticky=tk.W+tk.E)
file_count += 1
else:
text = job['body_tgt']
text_dict[text_count] = text
copyButton = tk.Button(self, text='訳文をコピーする',
command=lambda text_count=text_count: tk.clipboard_append(text_dict[text_count]))
copyButton.grid(row=i+3, column=1, sticky=tk.W)
text_count += 1
脚本的开头用
# -*- coding: utf-8 -*-
但是,当我按其中一个按钮复制日语文本时,如
これはどのように動作し、すべての順序のどこに表示する短いテキストです。
(不要介意它的意思,这是胡言乱语)并将其复制到Word文件中,生成的文本如下所示:
これはどのように動作し、すべての順序のどこに表示する短いテキストです。
copyButton = tk.Button(self,
text='訳文をコピーする',
command=lambda text_count=text_count: root.clipboard_append(text_dict[text_count]))
如何修改代码以正确显示日语字符?从代码中可以看出,文本存储在字典中,并且在这一点上仍然完好无损。只有当用pyperclip把它拔出来时,它才会变得很时髦
我希望这个解释是充分的
提前谢谢你 我只需要在这里做一个小的调整:
copyButton = tk.Button(self,
text='訳文をコピーする',
command=lambda text_count=text_count: tk.clipboard_append(text_dict[text_count]))
功能版本如下所示:
これはどのように動作し、すべての順序のどこに表示する短いテキストです。
copyButton = tk.Button(self,
text='訳文をコピーする',
command=lambda text_count=text_count: root.clipboard_append(text_dict[text_count]))
不再有德语或日语的时髦角色。法语和汉语等其他语言现在也可以使用了
再次感谢您的投入!它帮助我们对代码有了新的认识。Python2.x或3?对不起,3.5。将添加到描述中!
#-*-编码:utf-8-*-
只告诉python编译器您的源代码是用utf8编码的。谢谢您的评论!所以我需要告诉pyperclip单独获取UTF-8中的信息?我该怎么做呢?嗨@Vash,你在用pyperclip
?在您的代码中,我只看到clipboard\u append()
…根指向程序的主框架(通过tk.tk()
方法),该框架在定义所有类之后启动。我决定尝试将复制方法绑定到程序的不同级别,并从最基本的root
窗口开始。令我惊讶的是,它立即起了作用。