我正在尝试编写一个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, 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)}
没有解决问题。
感谢您的帮助, 问候。
答案 0 :(得分:1)
如果您使用的是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))
答案 1 :(得分:1)
为了生成文件和目录名称的字符串,您可以使用str.format
函数。例如:
NumericLiteralExpression
此外,最好在您的情况下使用os.makedirs
,因为它以递归方式创建目录,而不检查它是否存在路径。 (但要注意提供正确的路径)(注意:如果目标目录已经存在,则会引发>>> "Hello {} {}".format("World", 2018)
'Hello World 2018'
。)
现在您需要为您的案例使用嵌套的OSError
循环。用于生成目录的外部循环,以及用于生成文件的内部循环。这是示例代码:
for
使用您的逻辑修改上面的示例代码。