利用Python的tkinter模塊實現(xiàn)界面化的批量修改文件名_第1頁
利用Python的tkinter模塊實現(xiàn)界面化的批量修改文件名_第2頁
利用Python的tkinter模塊實現(xiàn)界面化的批量修改文件名_第3頁
利用Python的tkinter模塊實現(xiàn)界面化的批量修改文件名_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第利用Python的tkinter模塊實現(xiàn)界面化的批量修改文件名tk.Entry(window,textvariable=txtDirPath).grid(row=0,column=1)

tk.Button(window,text='瀏覽',command=BrowseDri).grid(row=0,column=2)

tk.Label(window,text='輸入要移除的內(nèi)容:').grid(row=1,column=0)

txtRemovedContent=tk.StringVar()

tk.Entry(window,textvariable=txtRemovedContent).grid(row=1,column=1)

tk.Button(window,text='移除',command=BatchReplaceFileName).grid(row=1,column=2)

tk.mainloop()

最后是程序運行效果,如下面幾張截圖所示:運行程序后,首先選擇要批量處理的文件夾,然后設(shè)置文件名中要移除的內(nèi)容,最后點擊移除按鈕批量處理文件名。

上文主要實現(xiàn)了批量移除文件名中的指定字符串,無法進行替換,本文在前面工作的基礎(chǔ)上,增加批量替換文件名中指定字符串的功能。

新增的功能點不多,主要包括:

單選框控件:使用tkinter.Radiobutton函數(shù)創(chuàng)建單選框控件,并用value屬性設(shè)置單選框?qū)?yīng)的值,也即選中單選框時得到的值,提前定義好變量(本文中定義了Int變量),創(chuàng)建單選框控件時用variable屬性綁定變量。如果要設(shè)置默認選中的單選框,則直接設(shè)置變量值為指定單選框?qū)?yīng)的value值即可;設(shè)置文本框的默認狀態(tài):文本框使用state屬性設(shè)置文本框的可用狀態(tài),包括normal/disabled,可以在創(chuàng)建Entry時指定文檔框的state屬性為disabled,則文本框默認不可用;修改控件屬性:除了在創(chuàng)建控件時指定屬性值之外,在程序運行過程中修改控件屬性有多種方式(詳見參考文獻5),本文采用通過字典鍵設(shè)置屬性方式動態(tài)修改文本框的可用狀態(tài)。

批量修改文件名程序的完整代碼如所示:

#coding=gbk

importtkinterastk

importos

fromtkinter.filedialogimportaskdirectory

defBrowseDri():

txtDirPath.set(askdirectory())

defSetControlStatus():

mode=processMode.get()

if(mode==1):

txtRemoved['state']='normal'

txtBeforeReplaced['state']='disabled'

txtAfterReplaced['state']='disabled'

btnProcess['text']='移除'

elifmode==2:

txtRemoved['state']='disabled'

txtBeforeReplaced['state']="normal"

txtAfterReplaced['state']='normal'

btnProcess['text']='替換'

defBatchReplaceFileName():

path=txtDirPath.get()

mode=processMode.get()

if(mode==1):

strOldSign=txtRemovedContent.get()

strNewSign=""

elifmode==2:

strOldSign=txtBeforeReplactContent.get()

strNewSign=txtAfterReplactContent.get()

files=os.listdir(path)

foronefileinfiles:

ifonefile.find(strOldSign)0:

continue

oldname=path+"\\"+onefile

newname=path+"\\"+onefile.replace(strOldSign,strNewSign)

os.rename(oldname,newname)

print(oldname,"====",newname)

window=tk.Tk()

window.title('批量處理文件名')

window.geometry('400x300')

tk.Label(window,text='選擇文件夾').grid(row=0,column=0)

txtDirPath=tk.StringVar()

tk.Entry(window,textvariable=txtDirPath).grid(row=0,column=1)

tk.Button(window,text='瀏覽',command=BrowseDri).grid(row=0,column=2)

processMode=tk.IntVar()

tk.Radiobutton(window,text="移除內(nèi)容",variable=processMode,value=1,command=SetControlStatus).grid(row=1,column=0)

tk.Label(window,text='輸入要移除的內(nèi)容:').grid(row=1,column=1)

txtRemovedContent=tk.StringVar()

txtRemoved=tk.Entry(window,textvariable=txtRemovedContent)

txtRemoved.grid(row=1,column=2)

tk.Radiobutton(window,text="替換內(nèi)容",variable=processMode,value=2,command=SetControlStatus).grid(row=2,column=0)

tk.Label(window,text='輸入替換前的內(nèi)容:').grid(row=2,column=1)

txtBeforeReplactContent=tk.StringVar()

txtBeforeReplaced=tk.Entry(window,textvariable=txtBeforeReplactContent,state='disabled')

txtBeforeReplaced.grid(row=2,column=2)

tk.Label(window,text='輸入替換后的內(nèi)容:').grid(row=3,column=1)

txtAfterReplactContent=tk.StringVar()

txtAfterReplaced=tk.Entry(window,textvariable=txtAfterReplactContent,state='disabled')

txtAfterReplaced.grid(row=3,column=2)

processMode.set(1)

btnProcess=tk.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論