用python开发文本翻译小软件

简介: 用python开发文本翻译小软件

思路介绍


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


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



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

一,分行读取文本内容:


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


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 requests
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
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 requests
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
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 os
import requests
nenr = 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) #将翻译的内容存入一个空的列表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()  #数据存入后关闭文本
else:
    print("请输入正确的文件类型") #当用户输入的内容不是txt文件时,则给出用户提示


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



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


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


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


import os
import requests
while True: #加入死循环,当翻译成功后结束循环,其他情况下一直循环
    nenr = input("输入txt文件所在位置:")  #将这里设置为用户自动输入
    a=[]
    b = [] #定义一个空列表b,这个列表是方便我们后续存入翻译后的内容
    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) #将翻译的内容存入一个空的列表a
        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()  #数据存入后关闭文本
        print("翻译成功,请至文件夹内查看")  #翻译成功后提示
        break #翻译成功后结束循环
    else:
        print("请输入正确的文件类型") #当用户输入的内容不是txt文件时,则给出用户提示


执行效果如下:



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


六,打包


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


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


打包后的效果



执行的效果:



相关文章
|
11天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
1月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
56 7
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
4天前
|
人工智能 测试技术 数据处理
通义灵码 2.0 体验报告:Deepseek 加持下的 Python 开发之旅
通义灵码 2.0 体验报告:Deepseek 加持下的 Python 开发之旅
57 11
|
1月前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
111 34
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
7天前
|
监控 算法 安全
内网桌面监控软件深度解析:基于 Python 实现的 K-Means 算法研究
内网桌面监控软件通过实时监测员工操作,保障企业信息安全并提升效率。本文深入探讨K-Means聚类算法在该软件中的应用,解析其原理与实现。K-Means通过迭代更新簇中心,将数据划分为K个簇类,适用于行为分析、异常检测、资源优化及安全威胁识别等场景。文中提供了Python代码示例,展示如何实现K-Means算法,并模拟内网监控数据进行聚类分析。
28 10
|
8天前
|
API Python
python泛微e9接口开发
通过POST请求向指定IP的API注册设备以获取`secrit`和`spk`。请求需包含`appid`、`loginid`、`pwd`等头信息。响应中包含状态码、消息及`secrit`(注意拼写)、`secret`和`spk`字段。示例代码使用`curl`命令发送请求,成功后返回相关信息。
30 5
|
25天前
|
存储 算法 安全
控制局域网上网软件之 Python 字典树算法解析
控制局域网上网软件在现代网络管理中至关重要,用于控制设备的上网行为和访问权限。本文聚焦于字典树(Trie Tree)算法的应用,详细阐述其原理、优势及实现。通过字典树,软件能高效进行关键词匹配和过滤,提升系统性能。文中还提供了Python代码示例,展示了字典树在网址过滤和关键词屏蔽中的具体应用,为局域网的安全和管理提供有力支持。
50 17
|
2月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
333 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
2月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
70 20

热门文章

最新文章

推荐镜像

更多