Python:闪电批量文件重命名

 

闪电般将下载的连续剧、电影、音乐、图片等批量重命名,办公自动化……...





大致路径

  • 对python只会打“hello,world”的基础下,安装了python3和pycharm;
  • 初步了解之后,尝试用python编码实现文件批量重命名;
  • 最初只用自带的IDE复制网上的代码,尝试失败,且代码修改不是很方便;
  • 改用pycharm运行,会弹出一些错误信息,搜索错误信息,尝试修复。

实际操作

  • 从网路上,下载很多电影,每一个文件的名称都会带有水印,比如网址或者公众号信息;
  • 有很多批量重命名软件,操作简单,但步骤至少三步以上。打开文件夹,导入文件,添加重命名的规则,执行重命名等;
  • 有没有一种方法,直接通过运行命令,输入一行代码即可完成文件批量重命名工作;
  • 搜索python文件批量重命名,找到若干解决方案;
  • 复制代码,根据说明,输入文件所在路径及其他参数;
  • 出现代码若干问题,修复后,执行成功。

遇到问题

  • 最主要的问题就是报错 
    python expected an indented block
  • 查询原因之后发现是代码缩进问题,尝试将有问题的代码tab,错误仍旧未解决;
  • 来自作者CaptainEagune的《如何用python批量改文件名》;
  • 发现作者已经细心将代码图片一并上传;


  • 对照这个图片将代码缩进问题解决;
  • 第一次运行成功代码,但只修改了其中一个文件的名称;
  • 要解决所有该文件夹下的所有文件按递增关系,顺序重命名;
  • 根据作者提示修改代码,运行成功,但发现文件是从0~XXX顺序替换,我需要是从1开始;
  • 仔细观察代码,当然是看不懂啦!不过呢,发现代码最开始 
    count=0
    ,尾部 
    count+=1
  • 于是把 
    count=0
    改为 
    count=1
    ,再找一个文件夹试一下,成功!

代码如下

  1. import os
  2. def rename():
  3.     count=1
  4.     path="F:\权利的游戏"
  5.     filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
  6.     for files in filelist:#遍历所有文件
  7.         Olddir=os.path.join(path,files)#原来的文件路径
  8.         if os.path.isdir(Olddir):#如果是文件夹则跳过
  9.             continue
  10.         filename=os.path.splitext(files)[0]#文件名
  11.         filetype=os.path.splitext(files)[1]#文件扩展名
  12.         Newdir=os.path.join(path,str(count)+filetype)#新的文件路径
  13.         os.rename(Olddir,Newdir)#重命名
  14.         count+=1
  15. rename()

测试一下

  • 有一个从网上随机下载81张图片的文件夹,命名为“tupian”;
  • 图片名称杂乱无章;


  • 将代码路径改为“tupian”;


  • 打开命令窗口,运行代码;


  • 非常成功!

怎么更快

  • windows系统至少要打开命令窗口,CD到目录后,执行python文件;
  • 据说mac系统可以双击直接运行python文件,牛!
  • 更快方法:下载的连续剧、电影、音乐、图片要有目的放在指定文件夹,这样代码路径就无需反复修改;
  • 固定文件夹内,执行重命名后,再将文件归类。


    关注 冷板凳小组


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册