0

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

假设变量名称= [速度,密度,压力,....](长度为 50+)

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

如第1行示例图片

样本输出

问题是由于与 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])

但我似乎想不出用迭代来做到这一点的方法

4

1 回答 1

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)
于 2018-09-06T16:08:36.050 回答