[英]Saving lists in python as semicolon delimited text file
我在Python中有三個清單。 我想將這些列表另存為以分號分隔的文本文件(帶有標題)。
例如,讓我們考慮以下三個列表:
l1 = ['a1', 'a2', 'a3', 'a4', 'a5']
l2 = [1,2,3,4,5]
l3 = [20.0, 25.1, 51.2, 60.2, 75.0]
和標題, ['Label1', 'Label2', 'Label3']
我希望這些列表以以下形式另存為文本文件中的列:
Label1; Label2; Label3
a1;1;20.0%
a2;2;25.1%
a3;3;51.2%
a4;4;60.2%
a5;5;75.0%
除了以上述格式保存文件外,我還要在寫入最后一列時使用百分比符號。 我檢查了這篇文章,但是我仍然對如何實現這一點感到困惑。 我正在使用python 2.7。
我將非常感謝您的幫助。
l1 = ['a1', 'a2', 'a3', 'a4', 'a5']
l2 = [1,2,3,4,5]
l3 = [20.0, 25.1, 51.2, 60.2, 75.0]
header = ['Label1', 'Label2', 'Label3']
import csv
with open('output.csv', 'w') as f:
w = csv.writer(f, delimiter=';')
w.writerow(header)
for row in zip(l1, l2, (str(x)+'%' for x in l3)):
w.writerow(row)
l1 = ['a1', 'a2', 'a3', 'a4', 'a5']
l2 = [1,2,3,4,5]
l3 = [20.0, 25.1, 51.2, 60.2, 75.0]
answer = ''
for i in range(len(l1)):
value = "{0};{1};{2}%".format(l1[i], l2[i], l3[i])
answer = answer+"\n"+value
header = ['Label1', 'Label2', 'Label3']
title = ';'.join(header)
answer = title + answer
print(answer)
file = open("answer.txt","w")
file.write(answer)
file.close()
您可以使用zip
轉置行,然后使用csv
模塊對其進行處理。
>>> import csv
>>> l1 = ['a1', 'a2', 'a3', 'a4', 'a5']
>>> l2 = [1,2,3,4,5]
>>> l3 = [20.0, 25.1, 51.2, 60.2, 75.0]
>>> l3_percent = ['{!r}%'.format(x) for x in l3]
>>> header = ['Label1', 'Label2', 'Label3']
>>> rows = zip(l1, l2, l3_percent)
>>>
>>> with open('out.csv', 'w') as f:
...: writer = csv.writer(f, delimiter=';', quoting=csv.QUOTE_NONE)
...: writer.writerow(header)
...: writer.writerows(rows)
這產生
標簽1;標簽2;標簽3
a1; 1; 20.0%
a2; 2; 25.1%
a3; 3; 51.2%
a4; 4; 60.2%
a5; 5; 75.0%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.