猿问

在 Python 中创建一个具有选定名称的文件夹

我用 Tkinter 编写了一个小的 GUI,我要求用户提供一个目录来保存某些图像,通过filedialog.askdirectory. 有了这些信息,我就可以在该目录中使用创建一个文件夹os.mkdir(),但我需要预定义它的名称(我使用类似 year_month_day 的结构......)。

无论如何在 tkinter 或使用 os 库中,用户可以在其中定义文件夹的名称然后创建?这个想法是当 Windows 文件夹浏览器打开时,他们可以转到所需的路径并使用他们想要的名称创建一个文件夹


眼眸繁星
浏览 163回答 3
3回答

侃侃尔雅

这是你想要的吗?import osfrom tkinter.filedialog import askdirectoryimport tkinter.messageboximport tkinter as tk# Dir selectdef selectPath():       path_ = askdirectory()    path.set(path_)def create_file():      print("folder_name: ", folder.get())    print("path_name: ", path.get())    dirs = os.path.join(path.get(), folder.get())    if not os.path.exists(dirs):        os.makedirs(dirs)        tkinter.messagebox.showinfo('Tips:','Folder name created successfully!')    else:        tkinter.messagebox.showerror('Tips','The folder name exists, please change it')root = tk.Tk()root.title('Create folder')root.geometry('400x380')path = tk.StringVar()   # Receiving user's file_path selectionfolder = tk.StringVar() # Receiving user's folder_name selectiontk.Label(root,text = "Target path:").place(x=50, y= 250)tk.Entry(root, textvariable = path).place(x=110, y= 250)tk.Button(root, text = "Path select: ", command = selectPath).place(x=265, y= 250)tk.Label(root,text = "Folder name:").place(x=50, y= 300)tk.Entry(root,textvariable = folder).place(x=110, y= 300)tk.Button(root, text = "Submit: ", command = create_file).place(x=265, y= 300)root.mainloop()path和folder变量是选择的路径和用户创建的文件夹名称。它在我的电脑上看起来像这样:

jeck猫

您可以通过放置一个input称为文本小部件的小部件来做到这一点。在输入文件夹名称并使用选择路径后,filedialog您可以创建一个创建目录的函数。def create_dir()    name = file_name.get() # took from the input    path = os.path.join(dir, name) # dir is a directory taken from the filedialog

MMTTMM

from datetime import datetimeimport osfrom tkinter import filedialogdatestring = datetime.today().strftime('%Y-%m-%d') #Formats the date according to year,month,day. #You can check out datetime for more infodefault_folder = 'Adrain-{}'.format(datestring)if os.path.exists(default_folder) == True: #Only creates a new folder when non-existing    passelse:    os.mkdir(default_folder)file_directory = filedialog.askdirectory(title = 'Select the target folder for saving             records', initialdir = default_folder)
随时随地看视频慕课网APP

相关分类

Python
我要回答