从用户输入创建嵌套列表并输出到CSV

时间:2014-12-30 02:22:30

标签: python csv export-to-csv nested-lists python-3.4

我是一个编程newb(使用python3 atm),我的第一个程序需要4个用户输入(带有指定转义字符的无限循环)并最终将它们写入带有标题的CSV文件中。无论是那个还是每4个单元格都要写一个新行,这是通过我2天的谷歌搜索,我无法弄清楚该怎么做。

我让程序使用输入并将其写入CSV,但是它只会在循环的每次迭代时覆盖第一行中的数据。

这是我到目前为止所得到的

count = 0
while (1):

    variable1 = str(input('Enter data here: '))
    variable2 = str(input('Enter data here: '))
    variable3 = str(input('Enter data here: '))
    variable4 = str(input('Enter data here: '))

    save = [variable1,variable2,variable3,variable4]
    file = open('file.csv', 'w', newline='')
    csv_write = csv.writer(save, delimiter=',')
    file.close()
    count += 1

我的问题是理解(可能理解)如何在每次循环迭代中完成输入并将数据存储到自己的嵌套列表段中。排序类似

save = [[iteration1Variable1,iteration1Variable2,iteration1Variable3,iteration1Variable4],
        [iteration2Variable1,iteration2Variable2,iteration2Variable3,iteration2Variable4]]

然后将嵌套列表写入CSV。

我希望我能够很好地描述我的需求和缺乏对这个概念的理解。 :\

2 个答案:

答案 0 :(得分:0)

怎么样......:

  count = 0
  f = open('file.csv', 'w')
  w = csv.writer(f)
  allsaves = []
  while True:
      variable1 = str(input('Enter data here: '))
      variable2 = str(input('Enter data here: '))
      variable3 = str(input('Enter data here: '))
      variable4 = str(input('Enter data here: '))

      save = [variable1,variable2,variable3,variable4]
      w.writerow(save)
      allsaves.append(save)

实际上你更好会有break的终止条件,否则你会有时间: - )

答案 1 :(得分:0)

一个只在循环中运行两次的简单解决方案......

import csv

with open('file.csv', 'w') as csvfile:
 csv_write = csv.writer(csvfile)
 count = 0

 while (count<2):
  variable1 = str(input('Enter data here: '))
  variable2 = str(input('Enter data here: '))
  variable3 = str(input('Enter data here: '))
  variable4 = str(input('Enter data here: '))
  csv_write.writerow([variable1, variable2, variable3, variable4])
  count += 1