? ? ? 很多朋友遇到批量修改文件名的問題,網(wǎng)上各種搜,操作麻煩不說還有些需要付費(fèi)。這里不多廢話,直接上代碼。
一、支持庫
import os
import tkinter
from tkinter import *
from tkinter import filedialog
from tkinter import messagebox
二、 定義函數(shù)
def Rename(): # 處理粘貼上來的數(shù)據(jù)
global var1,var2
i = 0
path0 = entry.get('0.0','end') #獲取輸入框內(nèi)容
path0 = path0.replace('\n','')
path = filedialog.askdirectory() #加載需要改名的文件
files = os.listdir(path)
#判斷 復(fù)選框情況
if (var1.get() == 1 and var2.get() == 0 and var3.get() == 0): #加到文件名前面
for aa in files:
# 舊名稱
old = os.path.join(path, aa)
kzm = os.path.splitext(aa)[-1]
picture = os.path.splitext(aa)[0]
# 新名稱
new = picture.replace(picture, path0 + picture + kzm)
# 加上路徑
new = os.path.join(path, new)
# 開始修改文件名稱
os.rename(old, new)
elif (var1.get() == 0 and var2.get() == 1 and var3.get() == 0): #加到文件名后面
for aa in files:
# 舊名稱
old = os.path.join(path, aa)
kzm = os.path.splitext(aa)[-1]
picture = os.path.splitext(aa)[0]
# 新名稱
new = picture.replace(picture, picture + path0 + kzm)
# 加上路徑
new = os.path.join(path, new)
# 開始修改文件名稱
os.rename(old, new)
elif (var1.get() == 0 and var2.get() == 0 and var3.get() == 1): #全部修改
for aa in files:
i = i + 1
# 舊名稱
old = os.path.join(path, aa)
kzm = os.path.splitext(aa)[-1]
picture = os.path.splitext(aa)[0]
# 新名稱
new = picture.replace(picture, path0 + '-' + str(i) + kzm)
# 加上路徑
new = os.path.join(path, new)
# 開始修改文件名稱
os.rename(old, new)
else:
messagebox.showerror(message="請勾選:加到文件名前面、加到文件名后面 還是 全部修改?。?!")
messagebox.showinfo('小葉提醒:', '批量修改文件名已完成?。。?)
os.startfile(path) #改好之后打開文件夾
root.quit()
def tick_trigger():
if (var1.get() == 1 and var2.get() == 0 and var3.get() == 0): #加到文件名前面
ck2.deselect()
ck3.deselect()
ck2['state'] = 'disabled' # 設(shè)置狀態(tài) normal正常、active活動、 disabled禁用 默認(rèn) normal
ck3['state'] = 'disabled'
elif (var1.get() == 0 and var2.get() == 1 and var3.get() == 0): #加到文件名后面
ck1.deselect()
ck3.deselect()
ck1['state'] = 'disabled' # 設(shè)置狀態(tài) normal正常、active活動、 disabled禁用 默認(rèn) normal
ck3['state'] = 'disabled'
elif (var1.get() == 0 and var2.get() == 0 and var3.get() == 1): #全部修改
ck1.deselect()
ck2.deselect()
ck1['state'] = 'disabled' # 設(shè)置狀態(tài) normal正常、active活動、 disabled禁用 默認(rèn) normal
ck2['state'] = 'disabled'
elif (var1.get() == 0 and var2.get() == 0 and var3.get() == 0): #未選擇
ck1.deselect()
ck2.deselect()
ck2.deselect()
ck1['state'] = 'normal' # 設(shè)置狀態(tài) normal正常、active活動、 disabled禁用 默認(rèn) normal
ck2['state'] = 'normal'
ck3['state'] = 'normal'
else:
messagebox.showerror(message="只能勾選一個(gè),不能多選!??!")
三、程序入口
if __name__ == '__main__':
root = Tk() # 創(chuàng)建一個(gè)窗體,通過這個(gè)窗口選擇指定的目標(biāo)文件夾,目標(biāo)文件夾存放著很多PDF文件,我們要通過這個(gè)程序在這個(gè)文件夾中篩選出需要的文件
root.title('批量修改文件名')
root.geometry("210x200")
var1 = tkinter.IntVar()
var2 = tkinter.IntVar()
var3 = tkinter.IntVar()
ck1 = tkinter.Checkbutton(root, text="加到文件名前面",font=('黑體', 15), height=1, variable=var1,command=lambda: tick_trigger())
ck1.place(x=5, y=40)
ck2 = tkinter.Checkbutton(root, text="加到文件名后面",font=('黑體', 15), height=1, variable=var2,command=lambda: tick_trigger())
ck2.place(x=5, y=70)
ck2.select()
ck3 = tkinter.Checkbutton(root, text="全部修改",font=('黑體', 15), height=1, variable=var3,command=lambda: tick_trigger())
ck3.place(x=5, y=100)
entry = Text(root, font=('宋體', 15), bg='#E6E8FA') # 設(shè)置輸入框
entry.place(x=5, y=5, width=200, height=30) # 顯示組件
#entry3.insert(INSERT, "輸入文件名需要增加的字段") # INSERT 光標(biāo)處插入 END 末尾處插入
btn_OK = tkinter.Button(root,
text='更 改',
font=('宋體', 18, 'bold'),
bd=5, # 邊框的大小
height=1,
width=6, # 寬度
bg='#1E90FF', # 背景顏色
fg='#FFFFFF', # 文本顏色
relief='raised', # 邊框的3D樣式 flat、sunken、raised、groove、ridge、solid。默認(rèn)為 raised。
command=lambda: Rename())
btn_OK.place(x=55, y=140)
root.mainloop()
四、運(yùn)行,微云 下載:文件分享文章來源:http://www.zghlxwxcb.cn/news/detail-816617.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-816617.html
到了這里,關(guān)于python 批量修改文件名(PDF、word、Excel、圖片、視頻等)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!