[英]Python: writing a text file with a lot of variables
我需要創建一個文本文件(從Python代碼開始),每行包含約50個變量,以逗號分隔。 我采用規范的方式進行output.write(“ {},{},{},{},{},{},{},{},{},{},... \\ n” .format (v,v,v,v,...但是使用如此多的變量將很難理解和維護。還有其他建議嗎?我考慮過使用csv模塊,畢竟我正在寫的是(有點)csv文件,但以為我會首先聽到其他建議。
當到達幾個相互關聯的變量時,通常使用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)
如果可以對變量進行排序,則可以使用locals()。
例如:
我設置了三個變量:
var1 = 'xx'
var2 = 'yy'
var3 = 'zz'
我可以通過sorted()對它們進行排序。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.