每次执行后创建不同名称的文件夹

Create folder after every execution with different names

我正在尝试制作一个程序,该程序会在文件夹内为每次执行创建一个具有不同名称的新文件夹。我在下面粘贴了我正在使用的代码:

import os


current_directory = os.getcwd()
name = "Day 1"


def folder_create(path, folder_name):
    folder_names = [folder for folder in os.listdir(
        path) if os.path.isdir(folder)]
    if folder_name not in folder_names:
        os.makedirs(folder_name)
    else:
        folder_num = folder_name.split(' ')[1]
        new_folder_name = f'Day {int(folder_num) + 1}'
        os.makedirs(new_folder_name, exist_ok=False)
        folder_name = new_folder_name
    return folder_name


if __name__ == '__main__':
    name = folder_create(current_directory, name)
    print(name)

此代码只能运行两次,这意味着它只能创建两个文件夹,即(第 1 天和第 2 天)执行两次后,但之后会出现 FileExistError。请帮助我找到解决方法,因为我只希望它为每次执行创建一个新文件夹,隔天名称为 i,e(Day 1, Day 2, Day 3)。

此解决方案可能适合您-

import os
import random


current_directory = os.getcwd()
day_names = []

for i in range(0, 10+1):  # 10 or Or Other Number+1 To Get Day Names That Number Of Times
    day_names.append('Day '+str(i))


def folder_create(path, folder_name):
    folder_names = [folder for folder in os.listdir(
        path) if os.path.isdir(folder)]
    if folder_name not in folder_names:
        os.makedirs(folder_name)
    else:
        folder_num = folder_name.split(' ')[1]
        new_folder_name = f'Day {int(folder_num) + random.randint(0, 10000)}'  # To Get A Random Day Name If It Already Exixts
        os.makedirs(new_folder_name, exist_ok=False)
        folder_name = new_folder_name
    return folder_name


if __name__ == '__main__':
    for name in day_names:  # Looping To Get Each Day Name
        name = folder_create(current_directory, name)
        print(name)

这会很好用。您的代码的真正问题是您一直向 folder_create() 函数提供相同的“名称”参数。

我所做的只是消除了提供名称参数的需要。

它现在所做的是获取目录列表,对列表进行排序,然后使用负索引获取最后一个目录。然后它使用最后一个创建新文件夹名称。玩得开心

import os


current_directory = os.getcwd()
name = "Day 1"


def folder_create(path):
    folder_names = [folder for folder in os.listdir(
        path) if os.path.isdir(folder)]
    folder_names.sort()
    if "Day 1" not in folder_names:
        os.makedirs('Day 1')
    else:
        folder_num = folder_names[-1].split(' ')[1]
        new_folder_name = f'Day {int(folder_num) + 1}'
        os.makedirs(new_folder_name, exist_ok=False)
        folder_name = new_folder_name
    return folder_name


if __name__ == '__main__':
    name = folder_create(current_directory)
    print(name)