Поле пользовательского ввода для переименования нескольких файлов

#python #tkinter #input #dynamic

#python #tkinter #ввод #динамический

Вопрос:

Я пытаюсь создать что-то для переименования нескольких файлов (по выбору пользователя), все в порядке, но я не могу заставить его получить пользовательский ввод для переименования.

здесь, когда я запускаю эту программу, я хочу ввести в поле name что-то вроде: "newname" а также я хочу ввести в поле date что-то вроде: 2020 .

Эти newname и 2020 присутствуют в коде по умолчанию, и программа автоматически это сделает. Я хочу предотвратить это и сделать его динамическим. Код является:

 import os
from tkinter import *

window = Tk()
window.title("Rename Helper")

hlabel = Label(window, text="Name")
hlabel.grid(row=0, column=0)

dlabel = Label(window, text="Date")
dlabel.grid(row=2, column=0)

hl_text = StringVar()
e1 = Entry(window, textvariable=hl_text)
e1.grid(row=0, column=1)

d_text = StringVar()
e2 = Entry(window, textvariable=d_text)
e2.grid(row=2, column=1)

fileExt = (".png", ".jpg", ".jpeg", ".PNG", "JPG", ".JPEG")
def rename(path, new_name, numbering, d_text, extension,):
    list = os.listdir(path)
    os.chdir(path)
    count = numbering
    for i in list:
        if i.endswith(fileExt):
            os.rename(i, new_name   "_P_"   str(count).zfill(2)   "_"   d_text   '.'   extension)
            count  = 1

path = os.path.abspath('./')

def renamebtn():
    rename(path, 'newname', 1, "2020", "jpg")

btn1 = Button(window, text="Rename", command=renamebtn)
btn1.grid(row=3, column=2)

window.mainloop()
  

Комментарии:

1. В чем конкретно заключается ваш вопрос?

2. Ответ на ваш вопрос можно найти практически в любой документации tkinter. Зачем вам нужна помощь?

Ответ №1:

Вы можете получить значения полей ввода, используя get() метод связанных переменных:

 def renamebtn():
    newname = hl_text.get()
    newdate = d_text.get()
    print(newname, newdate)
    #rename(path, newname, 1, newdate, "jpg")