Я пишу код, который добавляет порядковые номера в качестве префикса к именам файлов в выбранной папке. Все хорошо под Pycharm (см. Рис. 1). Рис.1 Однако после того, как документ .py был преобразован в .app с помощью следующих шагов, окно становится черным (Рис.2). Рис.2 Вот что сделал: (1) pip install py2app (2) py2applet --make-setup EasyReNamer.py (3) python setup.py py2app Тогда EasyReNamer.app доступен в дистрибутиве папки. А вот и мой код:
import os
from tkinter import filedialog
import tkinter as tk
from tkinter import Button
class ReName():
def __init__(self):
self.root = tk.Tk()
self.root['background']='white'
self.n = 0
label = tk.Label(self.root, font=("Arial Bold", 15),text='Please select a directory to rename files in the folder:')
self.label1=tk.Label(self.root)
label.pack()
self.btn = Button(self.root, font=("Arial", 15), relief='raised',highlightbackground='orange', text="Click Me", command=self.rename)
self.btn.pack()
def widget_position(self,root,width,height):
self.width=self.root.winfo_screenwidth()
self.height=self.root.winfo_screenheight()
x=(self.width-width)/2
y=(self.height-height)/2
self.root.geometry('%dx%d+%d+%d' % (width,height,x,y))
self.root.grid()
def get_db_configure(self):
self.root.title('Easy ReNamer Version 1.0')
self.root.resizable(0, 0)
def rename(self):
file_path = filedialog.askdirectory(title='ReNamer')
self.file_lists = os.listdir(file_path)
for self.file in self.file_lists.copy():
self.oldname = file_path + os.sep + self.file
if os.path.isdir(self.oldname) or self.file.startswith('.'):
continue
else:
self.newname = file_path + os.sep + '(' + str(self.n + 1) + ')' + self.file
os.rename(self.oldname, self.newname)
self.n+=1
self.label1.config(text='{} file(s) renamed'.format(self.n))
self.label1.pack()
self.btn.config(state='disabled')
self.btn.pack()
ins=ReName()
ins.widget_position(ins.get_db_configure(),500,80)
ins.root.mainloop()