为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

眼眸繁星 2023-03-22 17:09:14
我用 Tkinter 编写了一个小的 GUI,我要求用户提供一个目录来保存某些图像,通过filedialog.askdirectory. 有了这些信息,我就可以在该目录中使用创建一个文件夹os.mkdir(),但我需要预定义它的名称(我使用类似 year_month_day 的结构......)。无论如何在 tkinter 或使用 os 库中,用户可以在其中定义文件夹的名称然后创建?这个想法是当 Windows 文件夹浏览器打开时,他们可以转到所需的路径并使用他们想要的名称创建一个文件夹
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

这是你想要的吗?


import os

from tkinter.filedialog import askdirectory

import tkinter.messagebox

import tkinter as tk


# Dir select

def 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 selection

folder = tk.StringVar() # Receiving user's folder_name selection


tk.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变量是选择的路径和用户创建的文件夹名称。


它在我的电脑上看起来像这样:

//img1.sycdn.imooc.com//641ac60f000118d306590758.jpg

查看完整回答
反对 回复 2023-03-22
?
jeck猫

TA贡献1909条经验 获得超7个赞

您可以通过放置一个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


查看完整回答
反对 回复 2023-03-22
?
MMTTMM

TA贡献1869条经验 获得超4个赞

from datetime import datetime

import os

from tkinter import filedialog


datestring = datetime.today().strftime('%Y-%m-%d') #Formats the date according to year,month,day. 

#You can check out datetime for more info

default_folder = 'Adrain-{}'.format(datestring)


if os.path.exists(default_folder) == True: #Only creates a new folder when non-existing

    pass

else:

    os.mkdir(default_folder)


file_directory = filedialog.askdirectory(title = 'Select the target folder for saving             

records', initialdir = default_folder)


查看完整回答
反对 回复 2023-03-22
  • 3 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信