批量操作在办公中非常常见,比如对一个文件夹中的几百张图片重新命名,又比如将几十个txt文件合并到一个txt中,这些都是重复性的工作。在python盛行的时代,何不让几行代码替你做?省时省力效率高!
高效率办公
今天主要用到python当中的os模块,来完成改文件名,合并多文件内容这两个实战。
1.访问操作系统os模块
os模块是用来访问操作系统相关功能的模块,主要包含目录及文件操作,执行命令和管理进程等功能。这里主要用到它目录及文件操作功能。
批量文件
主要用到的方法:
1.os.path.dirname(path) 该方法用来获得path这个路径的目录
比如:os.path.dirname("C:\\Users\\Administrator\\Desktop"),获得的目录就是Desktop所在的目录C:\Users\Administrator。
2.os.path.split(path) 该方法将文件名分为名字和后缀
比如os.path.split("1.txt"), 将1.txt分为名字1和后缀.txt。
3.os.path.join(path1[, path2[,...]]) 拼接多个路径
比如os.path.join("C:\\Users\\Administrator\\Desktop","data"),返回的路径为
C:\Users\Administrator\Desktop\data。
4.os.listdir(dirname) 返回指定文件夹dirname下包含的文件或文件夹的名字列表。
重要方法
2.批量对文件重命名
这里对某个文件夹下大量的图片重新命名。
首先用os.path.dirname获得该文件的路径(绝对路径),让程序知道它要处理的文件在哪里放着。用os.listdir方法得到文件夹里面的文件。对于该文件夹里面的每个文件,用os.path.split方法提取后缀名,判断是不是要处理的图片类型。如果是要处理的图片类型,用os.path.join方法拼接新名字。最后用os.rename方法将步骤4的新名字替换掉旧名字。整体的代码看图
全部代码
不到十五行代码就可以完成对大量文件的重命名!当然你也可以对其它类型的文件命名,只需将suffix == '.PNG'中的'.PNG'换成对应类型即可!
3.批量合并文件
主要实现对多个csv文件合并,然后对合并后的数据按指定字段排序后整理到一个csv中。
首先用os.listdir方法获得目录下所有的文件,并声明一个pandas库的DataFrame对象。将文件后缀是.csv的文件路径添加到一个列表中。遍历列表中的每个csv文件,读取并追加存放到中DataFrame中。对DataFrame里面的数据按照某一字段升序排序。将结果输出到csv中。
步骤1,2
步骤3,4,5
该例子是将三个字段为num,name,age的csv文件进行了合并,并根据num字段对数据进行了升序排列,动态图展示效果。
效果展示
可以看到当运行程序后,会出现1.csv里面包含a.csv,b.csv,c.csv的所有数据,并已经根据num排好序。
要是分享的功能小伙伴觉得有用,可以点赞收藏一下,以后说不准就用到了!
谢谢大家
另外可以关注我,会分享好多办公中省时省力简单的代码哦!欢迎留言讨论。转载请注明出处(百家号:戏说编程)