我需要创建一个文本文件(来自Python代码),每行包含50个变量,由comm分隔。我采用规范的方式 output.write(" {},{},{},{},{},{},{},{},{},{},... \ n" .format(v ,v,v,v,... 但是这很难以阅读,并且很难用这么多变量来维护。还有其他建议吗?我想过使用csv模块,毕竟我写的是(有点)csv文件,但我想先听听其他建议。
答案 0 :(得分:0)
当达到少数彼此相关的变量时,通常使用list
或dict
。如果您创建一个列表:
myrow = []
myrow.append(v1)
...
这也允许更容易地循环每个值。完成后,您可以轻松地将其连接到字符串:
f.write(','.join(myrow))
如果您的行可能包含任何逗号(或您用作分隔符的任何内容),则必须确保转义。在这种情况下,CSV模块有助于:
import csv
with open('myfile.csv', 'w') as f:
fw = csv.writer(f)
fw.writerow(myrow) # where myrow is a list
有些人更喜欢添加额外的结构,例如:
myrow = {}
myrow['speed'] = speed_value
myrow['some_other_row'] = other_value
import csv
with open('myfile.csv', 'w') as f:
fw = csv.writer(f)
fw.writerow(myrow)
答案 1 :(得分:0)
如果您可以对变量进行排序,则可以使用locals()。
例如:
我设置了三个变量:
var1 = 'xx'
var2 = 'yy'
var3 = 'zz'
我可以按排序()来排序。
def sort(x):
if len(x) != 4:
return '99'
else:
return x[-1]
sortVars = sorted(locals(), key=sort)
然后,使用 for
组合它们。
result = ''
for i in sortVars[:3]:
result += locals()[i]
print(result)