如何解决每次执行后使用不同的名称创建文件夹
我正在尝试创建一个程序,该程序在每次执行时都在文件夹内创建一个名称不同的新文件夹。我粘贴了下面使用的代码:
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(第1天,第2天,第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()
函数提供相同的“名称”参数。
我要做的就是消除提供name参数的需要。
它现在要做的是获取目录列表,对列表进行排序,然后使用负索引获取最后一个。然后使用最后一个创建新的文件夹名称。玩得开心
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。