Python:闪电批量文件重命名

作者: 雷迪 | 来源:发表于2017-08-25 16:55 被阅读302次
    mark

    大致路径

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

    实际操作

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

    遇到问题

    • 最主要的问题就是报错python expected an indented block
    • 查询原因之后发现是代码缩进问题,尝试将有问题的代码tab,错误仍旧未解决;
    • 发现作者已经细心将代码图片一并上传;
    mark
    • 对照这个图片将代码缩进问题解决;
    • 来自作者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”
    mark
    • 将代码路径改为“tupian”
    mark
    • 打开命令窗口,运行代码
    mark
    • 非常成功!

    怎么更快

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

    相关文章

      网友评论

        本文标题:Python:闪电批量文件重命名

        本文链接:https://www.haomeiwen.com/subject/zbtpdxtx.html