首页 > 解决方案 > Python创建增量文件夹

问题描述

我正在尝试创建一个脚本,每次运行脚本时都会创建一个文件夹。我希望名称以增加 1 的数字结尾。所以,运行一次得到我的文件夹 1,再次运行得到我的文件夹 2,依此类推。我当前的代码运行一次并创建文件夹 1 和文件夹 2,之后每次运行都会创建一个我想要的文件夹。为什么第一次运行会创建 2 个文件夹?

import os

counter = 1
mypath =.     ('C:/Users/jh/Desktop/request'+(str(counter)) +'/')
if not os.path.exists(mypath):
    os.makedirs(mypath)
    print ("Path is created")

while os.path.exists(mypath):   
    counter +=1
    mypath = ('C:/Users/jh/Desktop/request'+(str(counter)) +'/')
   print(mypath)

os.makedirs(mypath)

标签: pythondirectory

解决方案


发生这种情况是因为您的代码实际上看起来像这样,删除了不必要的变量:

import os

counter = 1
mypath = 'C:/Users/jh/Desktop/request1/'
if not os.path.exists(mypath):
    os.makedirs(mypath)
    print ("Path is created")

while os.path.exists(mypath):   
    counter += 1
    mypath = 'C:/Users/jh/Desktop/request'+(str(counter)) +'/'
    print(mypath)

os.makedirs(mypath)

如您所见,“request1”文件夹是在第一个程序运行时创建的,然后继续正常运行。这很容易解决,只需删除第一个 if 语句:

import os

counter = 1
mypath = 'C:/Users/jh/Desktop/request1/'

while os.path.exists(mypath):   
    counter += 1
    mypath = 'C:/Users/jh/Desktop/request'+(str(counter)) +'/'
    print(mypath)

os.makedirs(mypath)

如果可以的话,我会删除额外的括号以提高可读性并使用 f 字符串,例如 mypath = f'C:/Users/jh/Desktop/request{counter}/'


推荐阅读