这两天没什么事干,就从网上下载了很多视频(电视剧、动漫等),但从网上下载下来后,发现好多视频的名称都很长,看着就烦。
对于单个视频,当然可以手动去修改其名称,但要是有很多视频呢?也要一个一个修改?
比如说一部电视剧,它每集的命名规则是相似的,这样就可以通过程序来批量进行修改。
可以通过程序去掉视频名称中多余的部分,或者直接对视频进行重命名。
下面是我写的程序,都有注释,就不再一一解释了。
1 #!/usr/bin/env python 2 # -*- encoding: utf-8 -*- 3 4 from Tkinter import * 5 import tkMessageBox 6 import tkFileDialog 7 import os
1 root = Tk() #实例化一个TK对象 2 3 root.title('文件批量工具') #设置窗口标题 4 #root.geometry('500x300+800+200') #设置窗口大小和窗口位置(格式:大小(例:500x200)、位置(例:+800+200)) 5 6 ''' 7 创建组件 8 ''' 9 Label(root,text='内容:').grid() #创建标签(Lable)并显示(grid)-----设置标签信息为'关键词',并指定显示在root窗口上 10 entry1 = Entry(root) 11 entry1.grid(row=0,column=1) #创建并显示输入框---grid:网格方式布局显示,row--行,column---列(默认都从0开始) 12 13 14 Button(root,text='选择文件夹',command=listdir).grid(row=0,column=2) #创建并显示按钮(显示在root窗口,并设置按钮显示内容 15 # 为'选择文件夹',使用command绑定事件函数listdir ) 16 17 Button(root,text='删除多余部分',command=update).grid(row=0,column=3) 18 19 Button(root,text='重命名',command=rename).grid(row=0,column=4) 20 21 listbox = Listbox(root,width=70) 22 listbox.grid(row=1,column=0,columnspan=5) #设置并显示列表框-----columnspan:合并多列 rowspan:合并多行 23 24 25 mainloop() #显示窗口
1 #选择文件夹并显示文件夹下的内容 2 def listdir(): 3 listbox.delete(0, END) #清空列表框 4 global path 5 path = tkFileDialog.askdirectory() #弹出文件夹选择框 6 filelist = os.listdir(path) #获取文件夹下的内容 7 #在列表框进行展示 8 for file in filelist: 9 file_path = os.path.join(path,file) 10 listbox.insert(END,file_path) 11 12 #删除文件名中多余的部分 13 def update(): 14 try: 15 #清空列表框内容 16 listbox.delete(0,END) 17 #获取文件夹小内容列表 18 filelist = os.listdir(path) 19 #对文件列表进行遍历,修改文件名 20 for file in filelist: 21 # 获取文件名、文件类型、文件路径 22 file_name = os.path.splitext(file)[0] 23 file_type = os.path.splitext(file)[1] 24 file_path = os.path.join(path, file) 25 26 del_str = entry1.get().strip() #从输入框获取输入内容并去掉首尾空格 27 if del_str in file_name: 28 new_file_name = file_name.replace(del_str, '') 29 new_file_type = file_type 30 new_file = new_file_name + new_file_type 31 new_file_path = os.path.join(path, new_file) 32 33 os.rename(file_path, new_file_path) 34 listbox.insert(END, new_file_path) 35 else: 36 listbox.insert(END, file_path) 37 except: 38 tkMessageBox.showinfo('提示', '请先选择文件夹') # 显示信息提示(参数分别为标题和内容) 39 return 40 41 #重命名文件 42 def rename(): 43 try: 44 listbox.delete(0, END) 45 46 filelist = os.listdir(path) 47 48 count = 1 49 for file in filelist: 50 # 获取文件名、文件类型 51 file_name = os.path.splitext(file)[0] 52 file_type = os.path.splitext(file)[1] 53 file_path = os.path.join(path, file) 54 55 add_str = entry1.get().strip() 56 if add_str: 57 new_file_name = add_str + '%02d'%count 58 new_file_type = file_type 59 new_file = new_file_name + new_file_type 60 new_file_path = os.path.join(path, new_file) 61 62 os.rename(file_path, new_file_path) 63 listbox.insert(END, new_file_path) 64 count += 1 65 else: 66 listbox.insert(END, file_path) 67 except: 68 tkMessageBox.showinfo('提示', '请先选择文件夹') # 显示信息提示(参数分别为标题和内容) 69 return
关注我的公众号,不定期推送资讯
本文来自博客园,作者:链条君,转载请注明原文链接:https://www.cnblogs.com/MacoLee/p/5607514.html