小程式的設計功能:運行后彈出一個視窗,上部是一個說明標簽,中間是一個寫著“Click Me”的按鈕。點按該按鈕后,彈出一個對話框,選中一個檔案夾,并且將檔案夾中的檔案(不包括隱藏檔案和子檔案夾)的名稱前面加上序號。在按鈕下面顯示已處理的檔案數量。
問題:(1)目前程式不能正確顯示已處理檔案數量,見下圖紅色下劃線所示:

(2)未能篩選出隱藏檔案
希望大佬能教教我怎樣解決上面兩個問題。
我的代碼:
renamer_V1.py:
import os
from tkinter import filedialog
import tkinter as tk
from tkinter import Button
def rename():
n=0
file_path = filedialog.askdirectory(title='ReNamer')
file_lists = os.listdir(file_path)
for file in file_lists.copy():
oldname = file_path + os.sep + file
if os.path.isdir(oldname):
continue
else:
newname = file_path + os.sep + '(' + str(n + 1) + ')' + file
os.rename(oldname, newname)
n+=1
return n
root=tk.Tk()
root.geometry("550x200")
label=tk.Label(root,font=("Arial Bold",15),
text='Please select a directory to rename files in the folder:')
label.pack()
btn=Button(root,font=("Arial",15),bg='orange',text="Click Me",command=rename)
btn.pack()
label=tk.Label(root,text=str(rename)+' file(s) renamed.')
label.pack()
root.mainloop()
uj5u.com熱心網友回復:
我把它改了一下,但是這下重命名檔案數量始終都是0了,為什么會這樣呢?怎么讓它顯示正確的數字?import os
from tkinter import filedialog
import tkinter as tk
from tkinter import Button
class ReName():
def __init__(self):
self.n = 0
def rename(self):
file_path = filedialog.askdirectory(title='ReNamer')
file_lists = os.listdir(file_path)
for file in file_lists.copy():
oldname = file_path + os.sep + file
if os.path.isdir(oldname):
continue
else:
newname = file_path + os.sep + '(' + str(self.n + 1) + ')' + file
os.rename(oldname, newname)
self.n+=1
print(self.n)
ins=ReName()
root=tk.Tk()
root.geometry("550x200")
label=tk.Label(root,font=("Arial Bold",15),
text='Please select a directory to rename files in the folder:')
label.pack()
btn=Button(root,font=("Arial",15),bg='orange',text="Click Me",command=ins.rename)
btn.pack()
print(ins.n)
label=tk.Label(root,text=str(ins.n)+' file(s) renamed.')
label.config(text=ins.n)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/100996.html
上一篇:零基礎學爬蟲
