Как новичок, я не знаком с tkinter и не знаю, как улучшить следующие коды, которые должны работать следующим образом: После запуска файла renamer_v.py появится окно. Вверху отображается краткое описание, а под ним - оранжевая надпись «Click Me». Нажмите кнопку, а затем откройте второе окно, чтобы выбрать папку. Всем заголовкам файлов в папке, кроме скрытых и вложенных папок, будет присвоен префикс с сериализацией.
Проблема в том, что главное окно и второй виджет всплывают одновременно. Однако последний предназначен для отображения после нажатия кнопки пользователем.
Вот мой код souce. renamer_V1.py:
import win32file
import win32con
import tkinter as tk
from tkinter import Button
from clicked import Clicked
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()
c=Clicked()
btn=Button(root,font=("Arial",15),bg='orange',text="Click Me",command=c.clicked)
btn.pack()
c.clicked()
file_lists=os.listdir(c.file_path)
n=0
for file in file_lists.copy():
oldname=c.file_path+os.sep+file
file_flag=win32file.GetFileAttributesW(oldname)
is_hiden=file_flag & win32con.FILE_ATTRIBUTE_HIDDEN
if os.path.isdir(oldname) or is_hiden:
continue
else:
oldname=c.file_path+os.sep+file
newname=c.file_path+os.sep+'('+str(n+1)+')'+file
os.rename(oldname,newname)
n+=1
label=tk.Label(root,text=str(n)+' file(s) renamed.')
label.pack()
root.mainloop()
clicked.py:
from tkinter import filedialog
class Clicked:
file_path=None
def __init__(self):
print()
def clicked(self):
self.file_path=filedialog.askdirectory(title='ReNamer')