Python:闪电批量文件重命名
2017-08-25 本文已影响302人
雷迪
mark
大致路径
- 对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
,再找一个文件夹试一下,成功!
代码如下
import os
def rename():
count=1
path="F:\\权利的游戏"
filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
for files in filelist:#遍历所有文件
Olddir=os.path.join(path,files)#原来的文件路径
if os.path.isdir(Olddir):#如果是文件夹则跳过
continue
filename=os.path.splitext(files)[0]#文件名
filetype=os.path.splitext(files)[1]#文件扩展名
Newdir=os.path.join(path,str(count)+filetype)#新的文件路径
os.rename(Olddir,Newdir)#重命名
count+=1
rename()
测试一下
- 有一个从网上随机下载81张图片的文件夹,命名为“tupian”
- 将代码路径改为“tupian”
- 打开命令窗口,运行代码
- 非常成功!
怎么更快
- windows系统至少要打开命令窗口,CD到目录后,执行python文件;
- 据说mac系统可以双击直接运行python文件,牛!
- 更快方法:下载的电影、音乐、图片要有目的放在指定文件夹,这样代码路径就无需反复修改
- 在固定的文件夹内,执行重命名后,再将文件归类