在CSV行中编写整个列表-Python / IronPython

时间:2018-09-06 15:49:43

标签: python csv ironpython

现在我有几个长长的列表:一个叫做variable_names。

让我们说变量名= [速度,密度,压力....](长度为50 +)

我想写一行读取列表的每个索引,留下大约5个空单元格,然后写入下一个值,并一直执行直到列表完成。

如第1行的示例图片所示

Sample Output

问题是由于与Iron Python的兼容性问题,我不能使用xlrd,我需要在新的csv中动态写入每一行,从旧的csv加载数据,然后将该数据附加到新的csv,旧的csv中在将数据添加到新的csv中后,数据会不断变化,因此每次写行时都需要迭代列表中的所有值,因为在csv中添加列要困难得多。

我基本上想做的是:

 with open('data.csv','a') as f:
     sWriter=csv.writer(f)
     sWriter.writerow([Value_list[i],Value_list[i+1],Value_list[i+2].....Value_list[end])

但是我似乎想不出一种通过迭代来做到这一点的方法

1 个答案:

答案 0 :(得分:0)

由于writerow方法使用一个list参数,因此您可以先构造列表,然后编写列表,以便列表中的所有内容都位于一行中。

就像

with open('data.csv','a') as f:
     sWriter=csv.writer(f)
     listOfColumns = []
     for i in range(from, to): # append elements from Value_list
          listOfColumns.append(Value_list[i])
     for i in range(0, 2): # Or you may want some columns with blank
          listOfColumns.append("")
     for i in range(anotherFrom, anotherTo): # append elements from Value_list
          listOfColumns.append(Value_list[i])
     # At here, the listOfColumns will be [Value_list[from], ..., Value_list[to], "", "", Value_list[anotherFrom], ..., Value_list[anotherTo]]
     sWriter.writerow(listOfColumns)