Python 批量更改文件名、更改文件格式

今天从百度云下载了300多个文件,我需要在这些文件名字前面批量加上今天的日期,而又不影响原先的文件名字中的其他内容,于是就想用Python解决一下这个问题。如果,一个一个的鼠标点击,敲键盘的话,岂不累趴下了。

后来想了相可能还有一些其他的使用场景,比如:
1、下载了一部电视剧,几十集,下载的文件名多为“某某网址出品-甄嬛传第一集.mp4”,整理这些文件名
2、收了大量文件,比如作业、汇报等,想在一批文件前面加个日期啊、姓名啊等等
3、适用各种强迫症,比如我,以及实际需求

支持功能:
1、在文件名字前面批量加指定内容
2、在文件的名字当中删除指定的内容

备注:
1、依托于os模块的 os.listdir 将文件夹的所有文件名以list形式呈现,然后for循环遍历,所以需要在 “被修改的文件夹” 在同一目录下
2、加了while循环,所以针对于
“sdjflk-sdfasdf-sweqef-甄嬛传第1集-某某出品.mp4”
这一类的文件名字,前面的和后面的可以使用删除循环,一点一点删除,最终剩下你想要的
“甄嬛传第1集.mp4”。

运行结果:
Python 批量更改文件名、更改文件格式_第1张图片

程序运行前:
Python 批量更改文件名、更改文件格式_第2张图片
运行加一部分内容:
Python 批量更改文件名、更改文件格式_第3张图片
运行改格式:将 txt 格式 改为 mp3 格式
Python 批量更改文件名、更改文件格式_第4张图片
源码如下:

import os
def plus_name():
    for name in file_list:
        os.rename(name,plus_content+name) 
        print("【%s】已更改为【%s】"%(name,plus_content+name))
def del_name():
    for name in file_list:
        os.rename(name,name.replace(del_content,""))
        print("【%s】已更改为【%s】"%(name,name.replace(del_content,"")))
def hz_name():
    for name in file_list:
        os.rename(name,name.replace(hz_content_old,hz_content_new))
folder_name = input("请输入要修改的文件夹名:")
while True:
    print("*"*10+"批量修改文件名"+"*"*10)
    print("1:在文件名前面添加内容")
    print("2:在文件名里面删除内容")
    print("3:修改文件格式")
    print("4:退出系统")
    file_list = os.listdir(folder_name)
    os.chdir(folder_name)
    i = input("请选择功能序号:")
    if i == str(1):
        plus_content = input("请输入在文件名前面要加的内容:")
        plus_name()
        os.chdir("../")
    elif i == str(2):
        del_content = input("请输入在文件名中要删除的内容:")
        del_name()
        os.chdir("../")
    elif i == str(3):
        hz_content_old = input("请输入现在的文件格式,例:笔记.txt,请输入  .txt  那个点也要输入:")
        hz_content_new = input("请输入新的文件格式,例:电影.mp4,请输入  .mp4  那个点也要输入:")
        hz_name()
        os.chdir("../")
    elif i == str(4):
        print("大哥,小弟先行退下,有事您招呼我~") 
        break
    else:
        os.chdir("../")
        print("您的输入有误,请重新输入")

PS:目前还有一点体验不好的地方,如果输入的文件夹的名字不存在的话,程序就会崩,考虑到使用场景,崩了就再启动一次呗~ 就不完善了,凑合用吧~

END~

你可能感兴趣的:(Python,python,linux,批量替换,脚本语言,vim)