首页 > 解决方案 > 在for循环中使用新列将列表写入csv

问题描述

我想在 for 循环中将列表写入 csv 文件,并且每次都在不同的列中。例如,第一次迭代我生成一个列表 = [1,2,3,4,5],第二次迭代我有一个列表 = [1,2,3]。我希望输出 .csv 看起来像:

col1.     col2
---------------
  1        1
  2        2
  3        3
  4
  5

我得到以下代码:

## open csv file
with open(pic_path + 'file.csv', "w+") as my_csv:

for loop:
    (## do something.... and generate a list)
    
    ## write list as column to csv file
    csvWriter = csv.writer(my_csv)
        for val in list:
            csvWriter.writerows([val])

输出看起来像这样:

col1
-----
  1       
  2        
  3        
  4
  5
  1
  2
  3

上面所做的是它继续写入第一列,并且在下一次迭代时不会更改为新列。如何告诉python这样做?

标签: pythonlistcsvwrite

解决方案


  1. 生成列表列表
  2. 使用 zip、numpy 或任何其他方法转置列表列表
  3. 然后在 csvwriter 中以标准方式打印

推荐阅读