思路介绍

我们在工作或者生活中有没有碰到这种情况,就是我们需要对内容进行翻译,平时的时候我们是一句一句的粘贴翻译后在粘贴回来,针对这种情况 ,我们可以试着可以用代码的方式帮我们进行执行。方便又快捷

首页,我们来设计软件的开发逻辑和思路,大致的思路是这样的

既然这样 ,那我们就按照我们前期的思路来写代码,分步骤来实现这些功能,

一,分行读取文本内容:

这里我将代码粘贴至下面,代码会做注释

nenr = input("输入txt文件所在位置:")  #将这里设置为用户自动输入
a=[]
with open(r"{}".format(nenr), "r") as f:for line in f.readlines(): #加入循环,分行读取文本内的全部内容line = line.strip('\n')  # 去掉列表中每一个元素的换行符,后续等内容翻译好后存入文本时需要再加上换行符,不然我们存入的数据会堆积在一起a.append(line) #将翻译的内容存入一个空的列表a
print(a) #打印a的内容

执行效果

ok这里我们看到,这几行代码已经讲数据给提取出来了,以一个列表的方式给取出来了,其中,文本里的每一行的内容就是列表里的一个元素,

二,将内容分行提取后进行翻译并整理好我们需要的格式

我们将内容翻译出来后,这时就得想着,如何将内容给翻译好?这里我找到了一个第三方的翻译api,api的信息我就不粘贴了,后续有想要的可以私信我。我们看下如何实现这一步骤,代码如下:

import requestsnenr = input("输入txt文件所在位置:")  #将这里设置为用户自动输入
a=[]
with open(r"{}".format(nenr), "r") as f:for line in f.readlines(): #加入循环,分行读取文本内的全部内容line = line.strip('\n')  # 去掉列表中每一个元素的换行符,后续等内容翻译好后存入文本时需要再加上换行符,不然我们存入的数据会堆积在一起a.append(line) #将翻译的内容存入一个空的列表a
b=[]  #定义一个空列表b,这个列表是方便我们后续存入翻译后的内容
for x in a:  #这里我们使用循环,将存入数据的列表a给分步骤翻译a_1 = requests.get(url="http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=""{}".format(x))  #通过循环将列表的数据逐个翻译b.append(a_1.json()["translateResult"][0][0]["tgt"] + "\n") #这里将翻译后的数据给提取出来,然后将这个数据存入空列表b中,这里记得再存入的时候加上划行符“\n”
print(b) #查看我们翻译后的内容

ok,我们来看下执行效果

我们看到,这里我们已经将内容给翻译好了,既然翻译好了的话,我们就可以把翻译的内容给替换掉文本里的内容了

三,将翻译后的数据替换掉之前的数据

既然翻译好了,这时候我们就应该把翻译后的数据替换掉之前的数据才行,不让我们这样翻译和直接手动逐条翻译有什么区别咧

import requestsnenr = input("输入txt文件所在位置:")  #将这里设置为用户自动输入
a=[]
with open(r"{}".format(nenr), "r") as f:for line in f.readlines(): #加入循环,分行读取文本内的全部内容line = line.strip('\n')  # 去掉列表中每一个元素的换行符,后续等内容翻译好后存入文本时需要再加上换行符,不然我们存入的数据会堆积在一起a.append(line) #将翻译的内容存入一个空的列表a
b=[]  #定义一个空列表b,这个列表是方便我们后续存入翻译后的内容
for x in a:  #这里我们使用循环,将存入数据的列表a给分步骤翻译a_1 = requests.get(url="http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=""{}".format(x))  #通过循环将列表的数据逐个翻译b.append(a_1.json()["translateResult"][0][0]["tgt"] + "\n") #这里将翻译后的数据给提取出来,然后将这个数据存入空列表b中,这里记得再存入的时候加上划行符“\n”
print(b) #查看我们翻译后的内容
file_handle = open(r"{}".format(nenr), mode='w')
file_handle.writelines(b)  #将集合b存入文本里
file_handle.close()  #数据存入后关闭文本

我们来看下执行后的效果

不错不错,既然翻译好了 我们何不再加上其他的一些优化加强咧,比如 判断是否选择的是txt文件,或者是当txt文件是否存在 或者 我们可以把代码给打包成其他的一些内容,既然有思路了,我们就开始吧,

四,判断用户输入的是否是txt文件

这里我们要想判断用户输入的是不是txt文件时,我们可以直接判断后缀,如果用户输入的内容的末尾没有带上 .txt 这时,我们是否就可以判断用户输入的不是txt文件。有思路就通过代码实现,代码如下:

import osimport requestsnenr = input("输入txt文件所在位置:")  #将这里设置为用户自动输入
a=[]
accs = os.path.splitext(r"{}".format(nenr))[1] in ['.txt']  #这行代码是将判断用户输入的内容末尾是否是.txt 如果是,则返回true
if accs == True:  #这里我们加入判断,如果是返回的是true,则执行正常的代码:with open(r"{}".format(nenr), "r") as f:for line in f.readlines(): #加入循环,分行读取文本内的全部内容line = line.strip('\n')  # 去掉列表中每一个元素的换行符,后续等内容翻译好后存入文本时需要再加上换行符,不然我们存入的数据会堆积在一起a.append(line) #将翻译的内容存入一个空的列表ab=[]  #定义一个空列表b,这个列表是方便我们后续存入翻译后的内容for x in a:  #这里我们使用循环,将存入数据的列表a给分步骤翻译a_1 = requests.get(url="http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=""{}".format(x))  #通过循环将列表的数据逐个翻译b.append(a_1.json()["translateResult"][0][0]["tgt"] + "\n") #这里将翻译后的数据给提取出来,然后将这个数据存入空列表b中,这里记得再存入的时候加上划行符“\n”print(b) #查看我们翻译后的内容file_handle = open(r"{}".format(nenr), mode='w')file_handle.writelines(b)  #将集合b存入文本里file_handle.close()  #数据存入后关闭文本
else:print("请输入正确的文件类型") #当用户输入的内容不是txt文件时,则给出用户提示

我们来看下执行后的效果:

这里我们发现一个问题,当用户执行后,如果文件类型不正确就直接停止掉了,这样用户就需要重输入,对用户很不友好,咋办,我们加入循环,当用户执行成功后,代码翻译后,结束循环,如果文件类型不正确,那就重新循环,顺便,再给用户执行成功时加入一个提示

五,加入循环,提升用户体验

这里我们加入循环操作,提示用户体检,然后再给执行成功后加上提示,代码如下

import osimport requests
while True: #加入死循环,当翻译成功后结束循环,其他情况下一直循环nenr = input("输入txt文件所在位置:")  #将这里设置为用户自动输入a=[]b = [] #定义一个空列表b,这个列表是方便我们后续存入翻译后的内容accs = os.path.splitext(r"{}".format(nenr))[1] in ['.txt']  #这行代码是将判断用户输入的内容末尾是否是.txt 如果是,则返回trueif accs == True:  #这里我们加入判断,如果是返回的是true,则执行正常的代码:with open(r"{}".format(nenr), "r") as f:for line in f.readlines(): #加入循环,分行读取文本内的全部内容line = line.strip('\n')  # 去掉列表中每一个元素的换行符,后续等内容翻译好后存入文本时需要再加上换行符,不然我们存入的数据会堆积在一起a.append(line) #将翻译的内容存入一个空的列表afor x in a:  #这里我们使用循环,将存入数据的列表a给分步骤翻译a_1 = requests.get(url="http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=""{}".format(x))  #通过循环将列表的数据逐个翻译b.append(a_1.json()["translateResult"][0][0]["tgt"] + "\n") #这里将翻译后的数据给提取出来,然后将这个数据存入空列表b中,这里记得再存入的时候加上划行符“\n”print(b) #查看我们翻译后的内容file_handle = open(r"{}".format(nenr), mode='w')file_handle.writelines(b)  #将集合b存入文本里file_handle.close()  #数据存入后关闭文本print("翻译成功,请至文件夹内查看")  #翻译成功后提示break #翻译成功后结束循环else:print("请输入正确的文件类型") #当用户输入的内容不是txt文件时,则给出用户提示

执行效果如下:

这里我们看到,执行效果不错,既然这样的话,我们何不给代码打过包,提升软件的实用性,让其他电脑上没装python的同事也能使用?

六,打包

这里我们使用的是python的打包模块pyinstaller,我太饿了,打包模块的使用方法我就不多说了,后续有啥问题或者其他情况可以私聊或者评论,我都会回复

打包代码:pyinstaller -F -i acc.ico abcc.py

打包后的效果

执行的效果:

今天的趣味分享结束了,路过的点个关注哦 谢谢,后续如果碰到了有趣的软件会在次分享

用python开发文本翻译小软件相关推荐

  1. 看不懂英文文档不要慌,利用Python轻松实现翻译小软件

    前言 现在关于Python文档很多都是英文版本的,但是有很多学习Python的小伙伴的英语水平并不高,导致很多优质的文档看不懂,这样对于咱们学习Python也会造成很大的阻碍,但是咱们会Python呀 ...

  2. python做软件-用python做个翻译小软件吧~

    Python 2.7.13 IDE Pycharm 5.0.3 macOS 10.12.1 前言 花了一点时间,半抄半写半修改的写了第一个能用的python小程序,作用是在IDE端模拟有道词典的访问, ...

  3. python英语翻译-python制作英语翻译小工具代码实例

    这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来 ...

  4. python制作快递查询小软件

    用python制作快递查询小软件,使用Pycharm+Python+PyQt5 快递查询实现思路 通过对网址http://www.kuaidi100.com/ 抓包,发现通过self.url1 = r ...

  5. python开发用什么编程软件,五款不同阶段使用的IDE

    python自带的IDLE阶段 这个是鄙人看着教程介绍,亦步亦趋地打开python安装包中的IDLE(mac显示的软件标识,如果是windows系统的话,应该python.exe),这是一个即时交互的 ...

  6. python制作翻译小软件_如何基于Python制作有道翻译小工具

    这篇文章主要介绍了如何基于Python制作有道翻译小工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 该工具主要是利用了爬虫,爬取web有道翻译的 ...

  7. python英语翻译-python制作英语翻译小工具

    用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() ...

  8. python实战-抽答小软件(老师专属版)

    好久没更新了,有段时间没事帮同学做了几个小软件,很简单的所以分享给大家,代码相对比较简单但是并不一定是最优解,可以给大家提供一下思路哈哈,图侵删. 工程及软件下载链接: 代码+可执行文件:https: ...

  9. Python开发一个滑雪小游戏

    擅长领域:Python开发一个小游戏 今日重点:一步步分析and越过亚马逊的反爬虫机制 一.如何搭建开发环境环境 一起来学pygame吧 游戏开发30例(开篇词)--环境搭建+游戏效果展示 windo ...

  10. Python开发万能钥匙小程序,成功获取邻居家Wifi密码(附源码)!

    平时回家看用手机看视频.打游戏的时候,如果没有wifi是不是特别心疼自己的流量?当然了如果你有无限流量那就当我没说了哈,没有wifi但是我可以用万能钥匙破解别人的wifi呀,万能钥匙是什么?如果你的手 ...

最新文章

  1. 斯坦福团队是如何构建更好用的聊天 AI 呢?
  2. 数据结构与算法笔记(十六)—— 二叉搜索树
  3. 349套HTML5+CSS3各行各业网站模板免费下载
  4. DataGrip 2019.2.5 —— 中文列名(字段名)(columns name)乱码问题解决方案
  5. 常见Java面试题 Files的常用方法都有哪些?
  6. J2EE搭建Dynamic web SpringMVC工程404错误分析(三)
  7. aws mysql价格_mysql – AWS RDS“转出”成本有多贵?
  8. ATS push cache 测试
  9. 《测试驱动数据库开发》—第1章1.2节谁是目标读者
  10. ElasticSearch优化系列二:机器设置(内存)
  11. 参考文献起止页码怎么写_论文参考文献怎么写?
  12. 计划学Linux,老男孩Linux怎么样?真实的学员评价!
  13. spring定时器的简单实用
  14. node短信接口开发
  15. GIS:深圳独立坐标系与国家2000坐标系互转教程
  16. 如何轻松清除Google搜索记录
  17. Linux系统下启动DB2以及一些常用命令
  18. 微信小程序Scope参数错误或没有Scope权限的处理方法
  19. CC2530 IIC 4线驱动中景0.96寸OLED屏显示程序,从c51移植过来的
  20. Docker可视化工具 DockerUI 和 Shipyard 的区别

热门文章

  1. NS方程由精确解求源项matlab代码
  2. 一个简单的小程序demo
  3. cpc客户端紫屏问题解决方法
  4. 如何编写python代码
  5. linux下缺库的常见处理方法
  6. 一个简单标注库的插件化开发实践
  7. pycharm 连接SQL
  8. 指标权重确定方法之熵权法
  9. Python查找中国城市、省份
  10. Aiml中文包含英文(字母,特殊符号)识别问题的解决