Написание всего списка в CSV-строке Python / IronPython - PullRequest
0 голосов
/ 06 сентября 2018

Прямо сейчас у меня есть несколько длинных списков: один называется variable_names.

Допустим, имена переменных = [Скорость, Плотность, Давление, ....] (длина 50+)

Я хочу написать строку, которая читает каждый индекс списка, оставляет около 5 пустых ячеек, затем записывает следующее значение и продолжает делать это до тех пор, пока список не будет составлен.

Как показано в строке 1 Пример изображения

Sample Output

Дело в том, что я не могу использовать xlrd из-за проблем совместимости с Iron Python, и мне нужно динамически записывать каждую строку в новый 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 голосов
/ 06 сентября 2018

Поскольку метод 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)
...