我想在python中编写一个函数,每当给定条件为真时创建一个文件夹。我不知道这个条件能完成多少次。它就像
step_1条件true创建folder1 step_2 condition true create folder2 ... step_n条件true创建foldern
答案 0 :(得分:1)
包含os.mkdir
或os.mkdirs
https://docs.python.org/2/library/os.html
os.mkdir(path[, mode])
使用数字模式模式创建名为path的目录。默认模式为0777(八进制)。如果目录已存在,则OSError为 提高。
在某些系统上,忽略模式。在使用它的地方,首先屏蔽当前的umask值。如果是最后9位以外的位(即 设置模式的八进制表示的最后3位数, 他们的意思是平台依赖的。在某些平台上,它们是 忽略,你应该显式调用chmod()来设置它们。
也可以创建临时目录;请参阅tempfile模块的tempfile.mkdtemp()函数。
可用性:Unix,Windows。
os.makedirs(path[, mode])
递归目录创建功能。像mkdir()一样,但是需要包含叶子目录的所有中间级目录。 如果leaf目录已存在,则引发错误异常 无法创建。默认模式为0777(八进制)。
mode参数传递给mkdir();请参阅mkdir()描述,了解它的解释方式。
如下所示:
import os
for i in range(n):
# makeadir() evaluates your condition
if makeadir(i):
path = 'folder {}'.format(i)
if not os.path.exists(path):
os.mkdir(path)
编辑:如果你有一个条件:
import os
i = 1
while eval_condition():
path = 'folder {}'.format(i)
if not os.path.exists(path):
os.mkdir(path)
i += 1
答案 1 :(得分:0)
最简单的方法是使用while循环并使用计数器计算循环次数。
import os
counter=1
while statement:
os.mkdir('folder{}'.format(str(counter)))
counter += 1
# give a new value to your statement to keep creating or stop creating directories
statement = true
答案 2 :(得分:0)
import os
condition_success = 0 # set initial 0
while True:
condition_success += 1 # get counter for condition to increment if condition is true:
# By default this will create folder within same directory
os.makedirs("folder"+str(condition_success)) # creates folder1 if condition_success is 1
创建目录,在其他地方设置路径
path = "/path/" os.makedirs(path + "folder"+str(condition_success))
或者您可以直接将其创建为
os.makedirs("/path/folder"+str(condition_success))
如果您想在子条件下使用该条件,则可以使用if 声明执行它或打破你的条件,以防止无限 环
condition_success = 0 usr_input = int(input("Enter number to create number of folder/execute condition: ")) # get number from user input while True: condition_success += 1 # get counter for condition to increment if condition is true: # By default this will create folder within same directory os.makedirs("folder"+str(condition_success)) # creates folder1 if condition_success is 1 if condition_success >= usr_input: break