在生活和工作中,往往充斥着一些枯燥且乏味的事情。所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势。
本文列举了我自己平时在工作和生活中的七个小场景,每个场景都是带有这样「重复性」性质的事情,一起看看我是如何用 Python 这门简单易懂的编程语言去解决这些事情吧。
全文我都以 macOS 环境来模拟实际的操作情况,当中的代码也可以在 Windows 下运行,稍微修改路径即可。
场景 1:批量修改文件名
一般来说,注重信息安全的公司都不会允许员工私自安装第三方软件。这样的情况就发生在公司给我配的 Windows 笔记本上。
如果你用是的 macOS,那么你可以很快地选中相同类型的一批文件,然后右键调出系统自带的重命名功能批量修改文件命名。但是这些命名修改只能实现一些简单地头尾修改或是替换,如果想要修改文件拓展名则不行。
所以不管是用 Windows 也好,还是用 macOS 也好,我就自己写一个简单的 Python 脚本吧!假设我现在有这么一堆文件,都是 .png 为后缀的,我想把它们全部都换成 .jpg 格式。
普通版
碰上我上面说的这种无法私自安装第三方软件的用不了的情况,那么你就要自己手动一个一个右键然后重命名了。
Python 版
我可以简单利用 Python 内置的 os 库来进行文件命名的修改操作。
#!usr/bin/env python3
#coding:utf-8
import os
os.chdir ( r'/Users/linxiaoyue/Desktop/pictures' )
#os.listdir ( ) 函数可以直接获取当前文件夹下所有可见文件的文件名
old_names = os.listdir ( os.getcwd ( ) )
new_names = list ( map ( lambda x: x.replace ( '.png', '.jpg' ) , old_names ) )
# 使用内置的 zip 方法一一对应地进行迭代
for old_name, new_name in zip ( old_names, new_names ) :
os.renames ( old_name, new_name ) #os.renames ( ) 方法直接替换文件名
print ( ' 文件已完成重命名……✅ ' )
一般的文件名重命名到这就可以结束了。
但是如果碰到是这种中英文标点混杂的极端方式命名的文件,只想要以当中的中文来命名怎么办?
这时候就可以加入一个正则表达式的功能,可以让我们的程序更加强大。关于正则表达式的相关介绍可以参考王树义老师的这篇文章: