创建100多个文件夹并按顺序命名

时间:2015-09-30 18:18:53

标签: python directory

我正在尝试使用os.makedirs()工具创建143个文件夹,但我遇到了一些麻烦。我一次只能生成一个文件夹,我想立刻制作所有文件夹。我希望这些文件夹通过IMG_00160命名为IMG_0016。

我想过用计数器尝试for循环,其中每个循环都会将新数字添加到文件夹标题的末尾,但我无法让它工作。

import os

for folders in range(0, 143):
    count = 0016

    os.makedirs("C:\\Users\joshuarb\Desktop\Organized_Images\IMG"+count)

    count = count+1

5 个答案:

答案 0 :(得分:3)

您将在每次循环迭代中重新声明count = 0016。把它放在循环外面。

import os

count = 0016

for folders in range (0, 143):

    os.makedirs("C:\\Users\joshuarb\Desktop\Organized_Images
    IMG"+count)

    count = count+1

答案 1 :(得分:2)

使用直接数字更容易,更易读(请注意,您希望在range()调用中使用161,因为不包括最后一个数字):

import os

for count in range (16, 161):
    os.makedirs("C:\\Users\joshuarb\Desktop\Organized_Images\IMG_{:04d}".format(count))

另请注意,我使用宽度为4的零填充,因为IMG_0016和IMG_00160的命名约定不同所以我选择限制为DOS通常的8个字符。根据您的需要进行调整。

答案 2 :(得分:1)

首先,对于这种任务,没有必要使用临时变量。使用可能并且应该使用迭代范围的变量。

其次,range默认创建范围为0,因此您可以删除左边距边界。对于您的特定任务,最好的方法是迭代所需的时间间隔:从16到160。

第三,在Windows中,最好使用原始字符串来存储路径或屏蔽每个反斜杠,因为单个反斜杠被识别为元符号的开头。

最新的事情是,建议在加入字符串时使用format

因此,最终解决方案可能如下所示:

import os
base_path = "C:\\Users\\joshuarb\\Desktop\\Organized_Images\\"
dir_basename = "IMG_00"
for index in range(16, 161):
    os.makedirs("{}{}{}".format(base_path, dir_basename, index))

答案 3 :(得分:0)

停止手动跟踪count并使用range的结果:

first_num = 16
folder_count = 143
base_path = r"C:\Users\joshuarb\Desktop\Organized_Images"

for folder_num in range(first_num, first_num + folder_count):
    os.makedirs(os.path.join(base_path, "IMG"+str(folder_num).zfill(4)))

答案 4 :(得分:0)

import os

for folders in range(1,5):

    os.makedirs(os.getcwd()+'/folder00'+ str(folders))

如果同一目录中的目标提供了一些路径

,请使用os.getcwd()