这才是用 Python 的最高境界……

简介: 到今天,笔者使用 Python 有四五年了,在生活和工作上都有使用,写了不少应用和项目。我一直认为 Python 是一个能提高工作效率的工具,直到最近,才发现:

Python 是一个能延长生命的神器!

是怎么回事呢?


一年顶千年

作家李笑来,最近在微博上,发状态,说:在一个月的时间里,翻译了十本书!

之后他在 github[1] 上公开了实现的方法。

更让人惊奇的是他说的这句话:

一本书中文译文大约 39 万字的书,差不多用 1.5 小时就可以处理完毕(包括基本的格式编辑)

42.gif

处理过程

这是什么概念?

正常情况下,翻译一本外语书,经过翻译,校对,排版,需要差不多 6 个人,工作一年的时间,而现在,这个过程不到 2 小时,如果加上一些微调,大概需要一天时间。

也就是一个人 1 天 顶过去 6个人一年,这算下来,保守估计,一年就比过去的 一千年 还多!

这哪是提高了效率呀,简直就是延长了生命,将大量的时间可以节省下来去做其他事情。


无比简单

你可能会想,提升这么高效率一定很难吧。

那就看一下源码[2],是用 Python 写的,加文字说明还不到 600 行。

用了什么高超技术了吗?

看遍全文,用到的只有:requests[3]正则表达式[4]

可以说,只要 Python 入门了,都可以看得懂。

做很厉害的事情,并不需要特别复杂的技术。


处理过程

具体如何做的呢?通过李笑来的描述,首先从亚马逊上,购买需要翻译的电子书,然后用 PC 版 Kindle app[5] 打开并下载,在转化为 epub[6] 格式的电子书。

再用 Calibre[7] 电子书转化工具,将 epub 格式的电子书转化为 html 格式。

处理完原始资料,利用 Python 的 open 方法,打开 html格式的原始文件,简单处理格式后,逐行使用 requests 发送到 Deep L[8] 进行翻译。

将翻译结果收集起来,和原始内容相间排放,最后保存成 html 文件,用 VS code[9] 编辑器,进行编排和校对。


无独有偶

读过《黑客与画家[10]》的读者,一定对其作者 保罗·格雷厄姆 (Paul Graham)[11] 印象深刻,他从一个程序员成长为导师,而且创作不断,影响了很多人。

有位 保罗·格雷厄姆 的粉丝,将 保罗·格雷厄姆 发布的文集,利用爬虫和电子书转化工具,整理成了一本电子书[12],方便他随时查看,不受网络限制。

43.jpg

电子书

虽然,这个应用只是方便自己(也可能方便他人),但使用的工具一样简单。

通过 requests 将博客上的文章抓取到,经过整理,通过上面提到的电子书转化工具 Calibre,转化为 kindle 电子书。

为了方便检索,还做了一下索引和检索,不过都是通过 Python 脚本搞得定的。

有兴趣的读者可以查看源码[13]

效率实践

前段时间,完成了一个数据项目,从网上获取了大量的网页数据,其中关于提取文章核心的部分写过一篇介绍,有兴趣的读者可以看看。

其中有个环节,需要将获取到的页面组织成一个静态网页:

首页按照最高分类划分,然后是二级分类,最后是列表,点击列表可以查看具体页面。

处理方法是,创建页面模板(需要处理分页),然后读取各层分类,合成数据,替换到模板上,最后保存成 html 文件。


44.png


处理结果

六十多万条数据,处理完毕需要 2 小时。

如果不用 Python,人工处理的话,几乎是不可能完成的工作。


总结

回想当初学 Python 的时候,觉得需要掌握更高级的用法和技能,才能更好的用 Python,成为更专业的人。

而现在的感受是,编程,其实是任何人都可以提升效率的工具,人人都可以是超人。

如果说刚开始,编程是专业人士,科学家们的玩具,那么现在,编程的门槛低到,任何人都可以掌握并使用。

对于大多数人来说,编程更大的意义在于通过提升效率,提升效率就意味着:

延长生命

那么在学习 Python 的过程中,应该多将精力放在应用,解决实际问题,和思考之上,让 Python 真正变成我们的效率武器。

欢迎你在留言区写下自己的想法与思考。

比心!


参考资料

[1]

工具源码: https://github.com/xiaolai/apple-computer-literacy/tree/main/deepl-aided-semi-automatic-book-translatiion

[2]

翻译工具源码: https://github.com/xiaolai/apple-computer-literacy/blob/main/deepl-aided-semi-automatic-book-translatiion/deepl-automatic-html-translation.ipynb

[3]

requests: https://docs.python-requests.org/en/latest/

[4]

正则表达式: https://www.runoob.com/python/python-reg-expressions.html

[5]

Kindle app: https://www.amazon.cn/gp/browse.html%3Fnode=2331640071&ref=kcp_fd_hz

[6]

epub: https://zh.wikipedia.org/wiki/EPUB

[7]

Calibre: https://calibre-ebook.com/

[8]

Deep L: https://www.deepl.com/zh/translator

[9]

VS code: https://code.visualstudio.com/

[10]

黑客与画家: https://book.douban.com/subject/6021440/

[11]

保罗·格雷厄姆 (Paul Graham): https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%BD%97%C2%B7%E6%A0%BC%E9%9B%B7%E5%8E%84%E5%A7%86

[12]

Paul-Graham 文集: https://github.com/evmn/Paul-Graham

[13]

电子书源码: https://github.com/evmn/Paul-Graham/blob/master/calibre.recipe

目录
相关文章
|
3月前
|
Python
揭秘Python的超能力:魔法方法让你的代码变得无所不能!
【8月更文挑战第22天】Python中的魔法方法,如`__init__`, `__str__`, 和`__add__`, 是特殊的方法名,用于定义对象的行为。例如,`__init__`用于初始化对象属性;`__str__`定义对象的字符串表示,便于打印;`__add__`则允许自定义加法运算。这些方法无需直接调用,而是由Python解释器根据上下文自动调用,让类的行为更加符合Python的风格,从而编写出更优雅且功能丰富的代码。
36 1
|
3月前
|
机器学习/深度学习 算法 程序员
从迷茫到明晰:我的编程之旅探索Python中的异步编程:从理解到实践
【8月更文挑战第27天】在代码的世界里,我从一个迷茫的新手成长为一个有目标、有能力的开发者。这篇文章是我的技术感悟之旅,记录了我从大学毕业后的迷茫,到勇敢尝试新领域,再到不断学习和提升的过程。我希望我的经历能给你带来启示,就像甘地所说:“你必须成为你希望在世界上看到的改变。”让我们一起在编程的道路上,找到属于自己的方向。
|
6月前
|
存储 Rust Go
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
65 0
|
5月前
|
索引 Python 安全
【Python内功心法】:深挖内置函数,释放语言潜能
【Python内功心法】:深挖内置函数,释放语言潜能
|
5月前
|
Python
Python高级技巧:你的代码,也可以“撩”得一手好“骚”!
【6月更文挑战第11天】探索Python高级技巧,提升代码简洁与效率:使用列表推导式简化循环,内置`timeit`模块优化性能,装饰器动态修改函数行为,以及面向对象编程增强可维护性。通过不断创新与实践,让代码展现智慧与魅力!
30 0
|
Python
Python基础篇:用Python简简单单写个星空大战,可不能用来摸鱼啊~
Python基础篇:用Python简简单单写个星空大战,可不能用来摸鱼啊~
141 0
|
程序员 Python
必须用Python给程序员不懂浪漫平反一波....不管班花还是校花全都跑不掉~
必须用Python给程序员不懂浪漫平反一波....不管班花还是校花全都跑不掉~
116 0
|
Python
趁着课余时间学点Python(十一)面向对象的理解(高潮)
趁着课余时间学点Python(十一)面向对象的理解(高潮)
99 0
趁着课余时间学点Python(十一)面向对象的理解(高潮)
|
Python
趁着课余时间学点Python(十二)面向对象的理解(结局)
趁着课余时间学点Python(十二)面向对象的理解(结局)
163 0
趁着课余时间学点Python(十二)面向对象的理解(结局)
|
机器人 Java C语言
趁着课余时间学点Python(十)面向对象的理解(前奏)
趁着课余时间学点Python(十)面向对象的理解(前奏)
109 0
趁着课余时间学点Python(十)面向对象的理解(前奏)