我想知道如何在for循环中更改文件的名称,以便使用不同的连续名称保存它。 e.g
for i in range(0, np.max(idx)+1):
vars()['cluster' + str(i)]= [tracks[x] for x in range(len(tracks)) if idx[x] == i]
function_to_write("/Users/George/Desktop/file.bmp", vars()['cluster' + str(i)])
如何更改FileName才能成为file1,file2等?
答案 0 :(得分:2)
你可以这样做:
"/Users/George/Desktop/file{0}.bmp".format(i+1)
这使用python的string.format(...)
方法,用指定的值替换{}
。
{0}
表示替换它的值将是format(...)
此外,我发现您使用的是vars()
,这意味着您可能将变量存储为cluster1
,cluster2
,cluster3
,...
这通常不是一个好主意,相反,建议您使用list
。
如果您将所有“群集”存储在一个名为clusters
的列表中,则可以执行以下操作:
for i in range(0, np.max(idx)+1):
clusters[i] = [tracks[x] for x in range(len(tracks)) if idx[x] == i]
function_to_write("/Users/George/Desktop/file{0}.bmp".format(i+1), clusters[i])
答案 1 :(得分:0)
for i in range(0, np.max(idx) + 1):
filename = "file%d.bmp" % i + 1
应该这样做。
答案 2 :(得分:0)
您可以在列表理解中使用format
或%s
:
[function_to_write("/Users/George/Desktop/file{}.bmp".format(i), vars()['cluster' + str(i)]) for i in range(1,n)]
答案 3 :(得分:0)
您可以将每个i
添加到文件名中,如下所示:
function_to_write("/Users/George/Desktop/file"+str(i)+".bmp", vars()['cluster' + str(i)])