os 重命名和列表框回调
os rename and listbox callback
此应用程序的目的是将每个文件 1 重命名为特定编号,然后打开一个新的 window,我希望代码在用户选择的文件开头添加一个星号
from tkinter import *
from typing import Collection
import os
root = Tk()
root.geometry("500x200+700+300")
label1 = Label(text="Add directory")
label1.place(x=100,y=20)
entry1 = Entry()
entry1.place(x=300 ,y=20)
label2 = Label(text="enter the name")
label2.place(x=100 ,y=50)
entry2 = Entry()
entry2.place(x=300 ,y=50)
label3 = Label(text="enter the extention")
label3.place(x=100 ,y=80)
entry3 = Entry()
entry3.place(x=300 ,y=80)
directory = entry1.get()
name = entry2.get()
extention = entry3.get()
def main():
directory = entry1.get()
name = entry2.get()
extention = entry3.get()
folder = directory
listbox_entries = [os.listdir(folder)]
for count, filename in enumerate(os.listdir(folder)):
dst = f"{name} {str(count)} {extention}"
src =f"{folder}/{filename}"
dst =f"{folder}/{dst}"
os.rename(src, dst)
btn2 = Button(text="rename",command=main,font="arial 22 bold")
btn2.place(x=150 ,y=120,width=200,height=40)
class Frames(object):
def newWindow():
newwin = Toplevel(root)
newwin.title('New Window')
newwin.geometry("200x500")
newwin.resizable(0, 0)
labe = Label(newwin,text="Add directory")
labe.pack()
entr = Entry(newwin)
entr.pack()
def get():
folder = entr.get()
f = os.listdir(folder)
liste = Listbox(newwin)
for i in f:
liste.insert(END,i)
liste.pack()
def fav():
def callback(event):
aaa = event.widget.curselection()
os.rename(aaa,f"✰{aaa}")
btn55 = Button(newwin,text="FAVORİTE",command=fav)
btn55.pack()
btn4 = Button(newwin,text="0",command=get)
btn4.pack()
def mainFrame(root):
root.title('Open New Window!!!')
root.geometry("200x200")
root.resizable(0, 0)
button1 =Button(root, text ="✰", command =newWindow)
button1.place(x = 30, y = 150, width=25, height=25)
root.mainloop()
我遇到的问题是在第 74 行,它没有给出任何错误或任何输入,它基本上什么都不做。正如我上面提到的,我希望它在文件名的开头添加一个星号.
class Frames
已定义,但未在任何地方定义 called/instantiated。
def mainFrame(root)
和后面的 button1
需要缩减到 class Frames
范围之外(我认为)。此函数也不会被任何东西调用。
建议在 button1
之前将 Frames
的实例创建到变量中
variable = Franes()
并在 button1
.
中使用 command=variable.newWindow
最好在class Frames
中有一个启动函数,即def __init__():
,这样在调用时就创建了一个实例。然后 Frames
中的每个函数都变成了 class 属性,并且可以通过这种方式访问。
建议在 Python 文档中学习 class
和 scope
。
此应用程序的目的是将每个文件 1 重命名为特定编号,然后打开一个新的 window,我希望代码在用户选择的文件开头添加一个星号
from tkinter import *
from typing import Collection
import os
root = Tk()
root.geometry("500x200+700+300")
label1 = Label(text="Add directory")
label1.place(x=100,y=20)
entry1 = Entry()
entry1.place(x=300 ,y=20)
label2 = Label(text="enter the name")
label2.place(x=100 ,y=50)
entry2 = Entry()
entry2.place(x=300 ,y=50)
label3 = Label(text="enter the extention")
label3.place(x=100 ,y=80)
entry3 = Entry()
entry3.place(x=300 ,y=80)
directory = entry1.get()
name = entry2.get()
extention = entry3.get()
def main():
directory = entry1.get()
name = entry2.get()
extention = entry3.get()
folder = directory
listbox_entries = [os.listdir(folder)]
for count, filename in enumerate(os.listdir(folder)):
dst = f"{name} {str(count)} {extention}"
src =f"{folder}/{filename}"
dst =f"{folder}/{dst}"
os.rename(src, dst)
btn2 = Button(text="rename",command=main,font="arial 22 bold")
btn2.place(x=150 ,y=120,width=200,height=40)
class Frames(object):
def newWindow():
newwin = Toplevel(root)
newwin.title('New Window')
newwin.geometry("200x500")
newwin.resizable(0, 0)
labe = Label(newwin,text="Add directory")
labe.pack()
entr = Entry(newwin)
entr.pack()
def get():
folder = entr.get()
f = os.listdir(folder)
liste = Listbox(newwin)
for i in f:
liste.insert(END,i)
liste.pack()
def fav():
def callback(event):
aaa = event.widget.curselection()
os.rename(aaa,f"✰{aaa}")
btn55 = Button(newwin,text="FAVORİTE",command=fav)
btn55.pack()
btn4 = Button(newwin,text="0",command=get)
btn4.pack()
def mainFrame(root):
root.title('Open New Window!!!')
root.geometry("200x200")
root.resizable(0, 0)
button1 =Button(root, text ="✰", command =newWindow)
button1.place(x = 30, y = 150, width=25, height=25)
root.mainloop()
我遇到的问题是在第 74 行,它没有给出任何错误或任何输入,它基本上什么都不做。正如我上面提到的,我希望它在文件名的开头添加一个星号.
class Frames
已定义,但未在任何地方定义 called/instantiated。
def mainFrame(root)
和后面的 button1
需要缩减到 class Frames
范围之外(我认为)。此函数也不会被任何东西调用。
建议在 button1
之前将 Frames
的实例创建到变量中
variable = Franes()
并在 button1
.
command=variable.newWindow
最好在class Frames
中有一个启动函数,即def __init__():
,这样在调用时就创建了一个实例。然后 Frames
中的每个函数都变成了 class 属性,并且可以通过这种方式访问。
建议在 Python 文档中学习 class
和 scope
。