[英]Extract data from a list to multiple rows in a CSV file (Python3)
我對python完全陌生(使用python 3.6)。 只是在將信息從Python列表中提取到csv文件時遇到麻煩。 我有以下包含108個字符串的列表:
lines = [('10-k','2','3','4','10-k','6','7','8','10-K','10','11',...,'108']
這樣每四個字符串就有一個“ 10-k”字。 我正在嘗試使用以下代碼在csv文件中提取此列表:
with open ('extracted.csv', 'w') as out_file:
wr = csv.writer(out_file)
wr.writerow(["file_form", "n1", "n2", "n3"]) # Headlines
wr.writerow(lines)
“ extracted.csv”文件生成兩行:a)帶有標題的頂部行(可以)和b)第二行,每個字符串在不同的列中(即第2行的列數與字符串數相同),即,共108列)。 我希望自己的extract.csv文件在每個“ 10-k”字符串處生成一個新行。 最后,將有27行x每行4列= 108個字符串。 我一直在嘗試從我的長字符串中生成27x4的矩陣(使用數組),但無法完全弄清楚。
謝謝你的時間!
如果可以保證數據是一致的(每4個元素始終出現10-k
),則可以遍歷lines
並提取大小為4的塊。因此,這應該可以工作:
with open ('extracted.csv', 'w') as out_file:
wr = csv.writer(out_file)
wr.writerow(["file_form", "n1", "n2", "n3"]) # Headlines
for i in range(0, len(lines), 4):
wr.writerow(lines[i : i + 4])
您可以使用列表理解:
lines = [('10-k','2','3','4','10-k','6','7','8')][0]
rows = [lines[i:i+4] for i in range(0, len(lines), 4)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.