关于ZAKER 融媒体解决方案 合作 加入

每天在工作和生活中做的事,我如何用 Python 让它们变得更轻松?

少数派 10-21

在生活和工作中,往往充斥着一些枯燥且乏味的事情。所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势。

本文列举了我自己平时在工作和生活中的七个小场景,每个场景都是带有这样「重复性」性质的事情,一起看看我是如何用 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 ( ' 文件已完成重命名…… ' )

一般的文件名重命名到这就可以结束了。

但是如果碰到是这种中英文标点混杂的极端方式命名的文件,只想要以当中的中文来命名怎么办?

这时候就可以加入一个正则表达式的功能,可以让我们的程序更加强大。关于正则表达式的相关介绍可以参考王树义老师的这篇文章:

以上内容由"少数派"上传发布 查看原文