基於上次的小函式,寫了乙個ui介面,感覺python的gui介面(tkinter)還是蠻繁瑣的。
import os
import sys
import tkinter
import tkinter.******dialog
from tkinter.filedialog import askdirectory
#下面是gui介面
class gui():
def __init__(self,init_window_name):
self.init_window_name = init_window_name
#設定視窗
def set_init_window(self):
self.init_window_name.title("檔名批量修改工具v1.0") #視窗名
self.init_window_name.geometry('450x120+10+10') #290 160為視窗大小,+10 +10 定義視窗彈出時的預設展示位置
#self.init_window_name.geometry('1068x681+10+10')
self.init_window_name["bg"] = "pink" #視窗背景色,其他背景色見:blog.csdn.net/chl0000/article/details/7657887
#self.init_window_name.attributes("-alpha",0.8) #虛化,值越小虛化程度越高
#標籤self.name_in = tkinter.label(self.init_window_name, text="檔名",bg="pink")
self.name_in.grid(row=1, column=0)
self.name_change = tkinter.label(self.init_window_name, text="修改後的檔名",bg="pink")
self.name_change.grid(row=2, column=0)
self.path = tkinter.label(self.init_window_name, text="資料夾路徑",bg="pink")
self.path.grid(row=3, column=0)
#文字框
self.name_in_text = tkinter.text(self.init_window_name, width=20, height=1,fg='red') #原始資料錄入框
self.name_in_text.grid(row=1, column=3, rowspan=1, columnspan=1)
self.name_change_text = tkinter.text(self.init_window_name, width=20, height=1,fg='red') #修改後檔名
self.name_change_text.grid(row=2, column=3, rowspan=1, columnspan=1)
self.path_text = tkinter.text(self.init_window_name, width=40, height=1,fg='red') #路徑
self.path_text.grid(row=3, column=3, rowspan=1, columnspan=1)
#按鈕self.change_filename_button2 = tkinter.button(self.init_window_name, text="修改", bg="lightblue", width=10, command=self.change_filename) # 呼叫內部方法
self.change_filename_button2.grid(row=10, column=3)
# def myprint(self):
# user=self.path_text.get(1.0,"current")#獲取文字框內容 = x
# print(user)
def change_filename(self):
file_path = self.path_text.get(1.0,"current")
file_path = file_path.replace("\\\\","\\")
now_name = self.name_in_text.get(1.0,"current")
now_name = now_name.rstrip()
new_name = self.name_change_text.get(1.0,"end")
new_name = new_name.rstrip()
# file_path = r'e:\python\prj\test\ceshi'
# now_name = '333.txt'
# new_name = 'wdwd3.txt'
print(file_path,now_name,new_name)
for filepath, dirnames, filenames in os.walk(file_path): #用os.walk方法取得path路徑下的資料夾路徑,子資料夾名,所有檔名
for filename in filenames: #遍歷列表下的檔案路徑,子資料夾名,子檔名
if filename == now_name:
os.rename(os.path.join(filepath,now_name),os.path.join(filepath,new_name)) #子檔案重新命名
print ("change successfully") #輸出提示
def gui_start():
init_window = tkinter.tk() #例項化出乙個父視窗
zmj_portal = gui(init_window)
# 設定根視窗預設屬性
zmj_portal.set_init_window()
init_window.mainloop() #父視窗進入事件迴圈,可以理解為保持視窗執行,否則介面不展示
gui_start()
# now_name = '111.txt' #檔案修改前的名字
# new_name = 'ktbyz1.txt' #檔案修改後的名字
# file_path = r'e:\python\prj\test\ceshi' #執行程式前,記得修改主資料夾路徑,路徑為包含子資料夾的資料夾
沒有輸入之前
輸入之後
以上就是這個小工具了,用起來還是非常順手的.
python批量修改檔名
修改前 flv檔案是從rar檔案中解壓出來的。由於英文不好,並且有的flv檔案的名字並不十分清晰明了,所以打算將flv檔案名字改為相應的rar檔案的名字。僅供參考,新手勿噴 主要使用了python中的re 正規表示式 和os模組中的函式。coding gb2312 import os import ...
python批量修改檔名
最近工作需要給大量檔案改名。恰巧,本人又在自學python,所以就想用python寫個程式來自動修改相應的檔名。下面就通過 來介紹一下我的做法吧。先說一下,我的工作要求是,在所有的資料檔案前加上資料所在資料夾的名字,改完名字後把所有的檔案彙總到乙個新的資料夾。我要處理的檔案有的存放在次最後層目錄 有...
Python 批量修改檔名
需要將收到的 bmp 檔案按名稱順序排列,而檔名本來的樣式類似於image12.bmp,現需要修改為12.bmp,由於檔案數量較大,所以產生了利用 python 修改的想法,雖然 很簡單,但還算成功。import os 檔案位址 path c users 迴圈處理資料夾內的每個檔案 forfile ...