python批量命名教程_法律行业python教程——利用python批量处理文件之批量重命名...

对法律小伙伴们,尤其是律师助理和做非诉业务的小伙伴们,大量的重复琐碎的文件处理工作是不是常常让人失去工作的兴趣呢?

这里就不得不提到python工具的运用啦,一定要记住编程的思想是什么:

1、制作工具实现自动化工作;

2、拒绝重复工作;

不光对法律行业,所有含有大量文件文档工作内容的朋友们,都应该尝试学习使用python来构建自己的个性化处理工具。接下来废话不多说,我们直接进入主题。

准备工作:

1、老生常谈,再提一下,python3 和Pycharm工具的安装。

2、配置头文件:

#encoding:utf-8

import os

这里第一行#encoding:utf-8可加可不加,但为了培养好习惯,建议大家每次都加上这一行,意思的默认编码为utf-8编码,以免中文处理的时候出现乱码。

第二行import os,导入os库,这个库是python默认安装的库,不需要另外安装,直接导入就行,这个OS库是一个非常常见的python处理文件和目录的库,有了这个轮子,我们可以非常直接的对文件进行自动化处理。

接下来,我们就可以尝试各种文件处理操作了。

对于没有编程基础知识的朋友,需要先补充一下目录与路径的基础知识。如果已了解,可以直接跳过。目录的定义很简单,简而言之就是文件夹,可再细分为一级目录、二级目录、三级目录。目录的概念没必要深究。只要知道每个计算机系统都有一个根目录,用正斜杠“/”表示。根目录下的文件夹,比如“/root”,就表示根目录下的root文件或文件夹。

路径(PATH)可分为绝对目录和相对目录。一般来讲,路径指的是当前文件所在的位置,这个位置需要包含文件的文件名及其后缀。以win10系统中下图举例:

首先我们以上图中的图片文件“1.png”(以下简称“图片1”)作为对象,其绝对路径为:“D:\娱乐\美剧\2.png” (“\”反斜杠是win系统的表示方式,用正斜杠亦可) 。路径“./2.png”(以下简称“图片2”)就是图片1用来表示图片2位置的相对路径。这里的“./”可以省略,简化为“2.png”。图中文件夹仁医内的文件可以表示为:“仁医/123.jpg”。上一级目录(文件夹)中的相对路径可以用“../”表示相对路径,也可以直接用绝对路径表示,上图中比如下面这个"abc.txt",可以表示为图片1的相对路径:"../abc.txt",或者绝对路径“D:/娱乐/abc.txt”。

需要注意的是,相对路径是以某个文件为对标才存在的概念。绝对路径无论什么时候都是可以用来表示位置的。

一、文件的遍历操作

了解了文件的位置概念,我们来看下文件的遍历。什么叫文件的遍历,就好比点人头一样,每个人点一遍名字,点的过程当中,你可以对其进行操作。接下来看一段代码大家就明白了:

for parent, dirnames, filenames in os.walk('wenshu', followlinks=True): #dirnames 子文件夹

print("parent:",parent,"dirnames:",dirnames,"filenames:",filenames)

for filename in filenames:

file_path = os.path.join(parent, filename)

上面os.walk是os库中的一个方法,可以遍历一个目录下的所有文件,返回三个值,也就是我们声明的parent, dirnames, filenames三个值,分别代表上级目录,子目录,和文件名称。同时我们再在上面的基础上,对文件名filenames进行遍历,就可以遍历指定文件夹中所有的文件啦(包括子文件)。这里最后得到的值file_path,就是根据你输入的地址,这里是“wenshu”文件夹得到的相对路径。看不懂代码也没关系,照抄过来,在“wenshu”的位置输入你想要代替的文件夹位置,即可遍历该文件夹下所有的文件。

那么遍历文件有什么用呢?太有用了,遍历文件意味着你可以一次性操作所有的文档,包括文件名修改、文件删除、文件转换、文件内容替换、文件信息检索等等。

接下来一一演示给大家看以下:

二、文件名批量修改

一般来说,windows系统下,我建议使用绝对路径,因为文件层级多了,使用相对路径有时候会报一些莫名其妙的错误,对新手不友好。这里我在上面基础上增加了两行代码,通过字符串拼接获取每个文件的绝对路径。

for parent, dirnames, filenames in os.walk('wenshu', followlinks=True): #dirnames 子文件夹

print("parent:",parent,"dirnames:",dirnames,"filenames:",filenames)

for filename in filenames:

file_path = os.path.join(parent, filename)

rootPath="C:\坚果云\我的坚果云\综合其他\py_project\TeaCases\文档处理\重命名\\"

target=rootPath+file_path #我们要操作的每个文件的绝对路径

上图中,我们要将wenshu这个文件夹中的文件全部重新命名,怎么操作呢,非常简单:

for parent, dirnames, filenames in os.walk('wenshu', followlinks=True): #dirnames 子文件夹

for filename in filenames:

file_path = os.path.join(parent, filename)

if filename.endswith(".doc") or filename.endswith(".docx"):

rootPath="C:\坚果云\我的坚果云\综合其他\py_project\TeaCases\文档处理\重命名\\"

target=rootPath+file_path

pre_name=filename.split(".")[0] #split是将字符串分割的函数,这里根据"."分割,获取不带后缀的文件名

after_name=filename.split(".")[1] #文件名后缀,例如“docx”

newTarget=rootPath+'\wenshu\goodguy'+ str(index) +"."+after_name #新的文件的绝对路径

os.rename(target,newTarget)

index=index+1

因为不能在一个文件夹里存在多个同名文件,所以我们这里依次以数字表示,index从1开始,每成功一次,增加1。最终我们可得到的结果就出来了。

目标文件夹中的文件全部都变成了goodguy和数字的组合,文件类型也不会改变。

通过上面的步骤,我们实现了文件目录里所有文件的重命名。有几个简单知识点,记得复盘哦。第一,目录和路径的含义。第二,文件夹所有文件的遍历操作。第三,重命名操作。

其实都非常简单,只要掌握了文件遍历操作,还可以实现更多其他操作,因为笔者时间有限,同时担心内容太多难以消化,故在下次文章当中继续介绍。

作者原创,非经授权拒绝转载,违者必究。

作者:虞元坚 上海正策律师事务所 律师 全栈网络工程师/法律大数据应用领域专家。擅长领域:争议解决与诉讼、与软件开发和互联网相关的知识产权、不正当竞争、经济犯罪、科技产业投融资等。欢迎关注法律大数据公众号,和律师朋友们都在使用的随身工具——律师云助理。欢迎关注法律大数据公众号和使用律师云助理小程序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值