文章目录

  • 背景
  • 代码
  • 10.12修改:
    • 预览如下:
  • 10.24修改:
    • 执行
  • 10.24修改2:

背景

博主在读研究生,需要看大量英文文献, 无奈英语太渣,硬着头皮看容易走神,使用翻译软件或者谷歌翻译还会遇到一个严重的问题:
那就是在很多论文上复制内容,其中每一行都会带一个回车符,翻译时还得一个一个删,还得频繁地 Ctrl-C->鼠标->Ctrl->V 操作(可想而知我有多懒).
突然间想到大学毕业论文降重时写过一个出口转内销的Python脚本(中文->外文->中文),稍加改变即可实现所需功能(太特么聪明了)

使用姿势如下图:

右边复制,左边即可显示结果

代码

全部代码如下

# coding=utf-8
import requests
import pyperclip
import time
import sys
import osurl = "https://translate.googleapis.com/translate_a/single?client=gtx&sl={}&tl={}&dt=t&q={}&ie=UTF-8&oe=UTF-8"
url_2 = 'https://translate.google.cn/#view=home&op=translate&sl={}&tl={}&text={}&ie=UTF-8&oe=UTF-8'
url_3 = 'https://translate.google.cn/translate_a/single?client=webapp&sl={}&tl={}&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&otf=2&ssel=0&tsel=0&kc=1&tk=948402.577838&q={}'
try:la = sys.argv[1]
except:print("*******************************************")print("剪切板翻译小程序")print("Author: ColdCurlyFu")print("Blog: https://blog.csdn.net/weixin_43480922/article/details/101625868")print("*******************************************\n\n")print("英语:en")print("中文(繁体):zh-TW")print("法语:fr")print("俄语:ru")print("日语:ja")print("越南语:vi")print("波兰语:pl")print("德语:de")print("韩语:ko")print("其他自己查:http://board.locoy.com/?post=94")print("*******************************************")la = input("输入需要转换的语言(例如:en):")print("*******************************************")f_name = ''
try:f_name = sys.argv[2]with open(f_name+'.txt', 'a+', encoding='utf-8')as f:pass
except:if input("是否写进文档?")==('y'or'yes'or'Y'or'YES'or''):f_name = input("输入文件名(默认后加.txt):")with open(f_name+'.txt', 'a+', encoding='utf-8')as f:passpath_dirs = os.listdir()
if 'vBook.md' not in path_dirs:with open('vBook.md', 'a+',encoding='utf-8') as f:f.write(' Vacb | 释义 |Time\n')f.write(' -|-|-\n')old_text = ""
text = ""
translation = ""
while True:text = pyperclip.paste()if old_text != text and translation != text:# print(list(text))iput = ''iput = text.replace('\r\n', ' ')im = ''im = iput.replace('\n',' ')old_text = textfull_url = url.format( la, "zh-CN", im)try:r = requests.get(full_url)# print(r.json())# print(r.text)print('状态码:'+str(r.status_code))if r.status_code == 429:print('你太快了')else:if r.json()[0] != None:for item in r.json()[0]:if item[0] != None:try:translation+=item[0].replace('\r', '')except:passif len(im) <= 20 and len(translation) >= 2:with open('vBook.md', 'a+',encoding='utf-8') as f:f.write('$\color{green}{' + im.lower()+'}$|' + translation + '|' + time.ctime() + '\n')                  with open('vBook.txt', 'a+',) as f:f.write(  '['+time.ctime() + ']    '+ im.lower()+ ':   ' + translation  + '\n')          print(translation)pyperclip.copy(translation)if f_name:with open(f_name+'.txt', 'a+', encoding='utf-8')as f:f.write(translation + '\n')print("*******************************************")print("已复制到剪切板,直接粘贴即可(当前语言:"+la+")")print("*******************************************")except:print("一定是你错了!")translation = ""time.sleep(0.5)

ps: 代码会删除复制文本中所有的’\r’和’\n’,请按句子或者按段落翻译,不要整篇翻译

10.12修改:

增加单词本功能,把复制的长度小于20写到文件中,输出文件为Markdown格式

预览如下:

ps:这是在vscode上的预览
插件名:Markdown Preview Enhanced

10.24修改:

增加写入文件功能,增加了输入与上次翻译结果的判断,翻译结果可以直接写入剪切板,复制完直接粘贴即可,不用看命令行。

执行

python ./gtl.py [语言(例如en)] [文件名(后面自动加.txt)]

例如:

python ./gtl.py en mytxt

然后就可以不用管它了^_^

10.24修改2:

由于我翻译的过于频繁,返回429了。。。。。
这次更改了异常处理(就是出错了瞎打印)

emmmmmmmmmm。。。。。。。

(PDF翻译助手)Python通过访问剪切板的方式使用谷歌翻译(pyperclip,requests)相关推荐

  1. python实现自动翻译剪切板

    复制中文粘贴英文 有时候需要把A文件翻译到B文件中,直接上传到谷歌翻译是个好办法,但是文章的排版可能会乱掉,那有什么可以直接把剪切板中的内容翻译到英文的程序呢?作为程序员,我选择自己编写>_&l ...

  2. 浏览器 Web 访问剪切板图片

    前言 有时候,我们希望能访问用户的剪切板,来实现一些方便用户的功能:但是另一方面,剪切板里的数据对用户来说又是非常隐私的,所以浏览器在获取信息方面有安全限制,同时也提供访问接口. 前段时间由于业务功能 ...

  3. 谷歌翻译退出中国市场,想要免费的调用谷歌翻译的接口,有什么好的解决办法呢?

    谷歌翻译退出中国市场,想要免费的调用谷歌翻译的接口,有什么好的解决办法呢? https://translate.googleapis.com/translate_a/single?client=gtx ...

  4. 用python做一个剪切板助手

    用Python做剪切板助手 目录 用Python做剪切板助手 程序效果图: 一.构造多线程类 二.构造剪切助手类 剪切板检测变化函数 剪切板操作函数 程序运行函数 操作模式函数 三.实例类并让程序工作 ...

  5. Python监听剪切板的两种方法

    第一种 import win32clipboard import time #速度快 容易出错 class niubi():def lihai(self):while True:#jianting() ...

  6. 如何允许网页中的编辑器访问剪切板_Vditor下一代的 Markdown 编辑器,为未来而构建...

    ❝ Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得(富文本).即时渲染(类似 Typora)和分屏预览模式.它使用 TypeScript 实现,支持原生 JavaScript ...

  7. Python使用Windows剪切板

    pywin32 for py2.7 下载:http://pan.baidu.com/s/1i5gjs1J 1.文本内容 # coding=utf-8import win32clipboard as w ...

  8. js访问剪切板,先处理需要粘贴的文本后,再进行文本粘贴

    需求: 在一些查询input输入时,用户可能会从某个地方复制查询数据,然后粘贴到查询表单中,这时可能会造成复制的数据有空格,而恰巧你点表单又进行了位数设置,则复制出来的数据可能会因此少一位. 我的解决 ...

  9. html访问剪切板,如何根据指定的剪切板获取html?

    从指定的剪切板中获取html,这还是有一点小技巧的,下面带大家看一下代码/** * 从指定的剪切板中获取html * @param clipboard * @return * @throws Exce ...

最新文章

  1. 浅析基于双目视觉的自动驾驶技术
  2. 在一家公司呆了 10 年的程序员,最后都怎么了?
  3. 计算机组装与维护致谢,毕业设计(论文)_计算机组装与维护 .doc
  4. boost::ignore_unused的用法实例
  5. 安装redis出现cc adlist.o /bin/sh:1:cc:not found
  6. 大数四则运算java(转)
  7. 在微信中调用ajax出现的问题
  8. 写在通用权限管理系统销售200套,从刚开始求人家用到人家主动索取,写一下亲身感受...
  9. c语言程序设计-简单的c语言程序
  10. java中ofd文件转pdf_java ofd文件解析
  11. FastDFS 原理介绍
  12. mysql建数据库实例_MySQL数据库基础(四)——MySQL数据库创建实例
  13. ubuntu自带Firefox安装flash插件
  14. 关闭谷歌Chrome浏览器历史记录提示
  15. sdhc卡文件丢失常见原因和两种恢复方法
  16. “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面 1
  17. sqlserver 2008 Express离线安装包
  18. Linux C语言磁盘U盘容量读取、目录列表读取、文件夹大小读取
  19. 交通灯系统51单片机设计(附Proteus仿真、C程序、原理图及PCB、论文等全套资料)
  20. Jsp的四种作用域范围

热门文章

  1. 移动互联网寒冬,程序员只能吃“青春饭”了吗
  2. 【数据准备和特征工程】1-1感知文件中的数据
  3. linux 编译java 含jar_windows,linux下编译java类问题(依赖第三方jar)
  4. 怎样把视频前面广告剪掉?
  5. Python(六)数据编码与处理
  6. PS纳米纤维网格滤片150nm(厚度:600um)(直径3/8cm)(网格空隙:200um)
  7. UiPath学习第一课
  8. linux read timed out,【转】网络异常模拟 read timed out
  9. PCA | 特征值和特征向量
  10. openGauss数据库JDBC环境连接配置(Eclipse)