我正在尝试使用循环中的格式字符串构建文件名:
Kv = [0001, 001, 1, 5 ]
Kx = [0001, 001, 1, 5 ]
dth = [001, 05 , 1 ,5, 10]
dw = [001, 01 , 1 ,2 ,3 ,4 ,5 ,6 ,8 ,10 ,20 ,30 ,40]
for x in Kv:
for y in Kx:
for z in dth:
for w in dw:
f = open("VY_dw%w_dth%z_Kx%y_Kv%x.txt"%(x,y,z,s), "w")
但这不起作用。我收到了错误
假格式字符
或者我添加了需要映射的括号。
为什么我会收到这些错误?我该如何修理它们?
答案 0 :(得分:0)
对于旧式Python格式字符串,在格式字符串中,您不能使用该语法的变量名称。你可以这样做:
fmt = "VY_dw%s_dth%s_Kx%s_Kv%s.txt"
for ...
# "old-style" format strings
f = open(fmt % (w, z, y, x), 'w') # vars should be in order
如果您希望命名格式字符串,我建议str.format
(新式):
fmt = "VY_dw{w}_dth{z}_Kx{y}_Kv{x}.txt"
for ...
# named vars
f = open(fmt.format(w=w, z=z, y=y, x=z), 'w')
您可能会混淆old-style string formatting(不允许使用已命名的变量)new-style string formatting(允许使用已命名的变量)。