Python小白的日常之特定文件的批量操作

一:问题描述:

从某些软件导出的图片或者其他格式的文件,命名非常杂乱,需要进行重命名。当文件数多到一定程度,上百上千甚至更多时,如果能够利用程序进行批量重命名那该多好;

重命名之后,最好能够将所需文件复制到指定文件夹里,以备进一步操作。

本文以某软件导出的大量tif格式图片为例,使用Python对指定文件夹里的图片重命名为阿拉伯数字(1,2,3...),之后根据自己的需要“跳号”选择图片并复制到新建的文件夹里。

二:解决问题:

首先导入所需要的库并输入必要参数

第一部分:重命名

重点代码解释。

count用于储存重命名后的文件名,通过循环得到1、2、3...

filelsit实际上是一个列表,储存了文件名+扩展名

方法os.path.join(a,b)用来生成路径,即将a、b合并为一个路径。如果你要把程序移植到其他操作系统,这个很管用。嘿嘿,作为小白的我也就用用Windows。

第二部分:生成一个新的文件夹,并根据自己的需要“跳号”选择图片复制这个新建的文件夹里。

重点代码解释。

os.makedirs('目录')用于在指定目录生成新的文件夹。

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。在Unix,Windows中有效。

其语法为

top-- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。即,dirpath里有一堆列表[a,b,c...],dirnames和filenames也一样。

topdown--可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。

onerror-- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。

followlinks-- 设置为 true,则通过软链接访问目录

因此,代码中的root,dirs,files分别表示文件夹路径, 文件夹名字, 文件名。

复制文件用的是shutil模块。

shutil.copy(source,destination),将路径source处的文件复制到路径destination处的文件夹。若destinaton是一个路径加文件名,那么它将作为复制文件的新名字。

注:为了使代码适应性更强,可以把例如文件格式作为变量,详见完整代码

三、完整代码:

四、参考资料:

Windows下对文件夹下所有图片批量重命名(附C++,python,matlab代码) - CSDN博客

Python os.walk() 方法

《Python编程快速上手——让繁琐工作自动化》人民邮电出版社 AI Sweigart著

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180722G105GK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券