Python 根据作为名称一部分的某些值动态创建目录和文件
我试图编写一个Python脚本,创建一个目录并将一些图像保存到该目录中。请检查下面的代码Python 根据作为名称一部分的某些值动态创建目录和文件,python,operating-system,Python,Operating System,我试图编写一个Python脚本,创建一个目录并将一些图像保存到该目录中。请检查下面的代码 person = 0 # Increase this by one every iteration if os.path.isdir('./training__data/s{str(person)}') is False: # if, for ex. s0 does not exist os.mkdir('./training__data/s' + str(person)) # create s0,
person = 0 # Increase this by one every iteration
if os.path.isdir('./training__data/s{str(person)}') is False: # if, for ex. s0 does not exist
os.mkdir('./training__data/s' + str(person)) # create s0, for ex.
for (x,y,w,h) in faces:
samples += 1
person += 1
cv2.imwrite("training__data/s{str(person)}" + str(samples) + ".png", \
gray[y:y+h, x:x+w])
我想要实现的是创建一个如下所述的文件树
-- training__data/
-- s0
-- 0.png
-- 1.png
-- n.png # goes until the nth picture
-- s1
-- 0.png
-- 1.png
-- n.png
-- . # goes until the nth directory
所以我的问题是,我如何将目录命名为s0、s1、s2等
我尝试添加这个-->s{str(person)}
,但没有解决问题
提前感谢您的帮助,
注意。如果您使用的是Python3,则需要使用format()函数
for i in range(5):
print("somefile_{suffix}.txt".format(suffix=i))
print("another_{0}_example{1}.lol".format(i*i, i/2))
为了生成文件名和目录名的字符串,可以使用函数。例如:
>>> "Hello {} {}".format("World", 2018)
'Hello World 2018'
此外,最好在您的案例中使用,因为它以递归方式创建目录,而不检查目录的路径是否存在。(但要小心给出正确的路径)(注意:如果目标目录已经存在,则会引发OSError
)
现在您需要为您的案例使用嵌套的for
循环。外部循环用于生成目录,内部循环用于生成文件。以下是示例代码:
base_path = '/path/to/dir'
for i in range(10):
dir_path = '{}/s{}'.format(base_path, i)
os.makedirs(dir_path)
for j in range(10):
file_path = '{}/s{}.png'.format(dir_path, j)
# your logic with file
用您的逻辑修改上述示例代码