【问题标题】:Outputting a series of numbers into a csv file in one cell as string in python将一系列数字作为python中的字符串输出到一个单元格中的csv文件中
【发布时间】:2014-10-25 02:05:26
【问题描述】:

我正在尝试将一系列数字写入 csv 文件。但所有数字都应该在一个单元格中,并用","分隔。

seq = str((554, 551, 553, 563, 562, 575, 581, 560, 576, 577, 578, 579))

with open('VROutput.csv', "wb") as csvfile:
    writer = csv.writer(csvfile,  delimiter=',', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(('Game', 'Year', 'Month', 'Day', 'Hour', 'Minute', 'Open Table', 'Opening Order'))
    for s, t, i in set((s, t, i) for s, t, i, p, n, k in combo):
         writer.writerow((i, '2014', '8', day, t, '00', quicksum(x[s, (int(t)), i, p, n, k].x for s, t, i, p, n, k   
combo.select(s, t, i, p, '*', '*')), seq))

在输出文件i 中,每行的最后一个单元格是seq,但我不想看到任何括号或括号或数字周围的任何内容。我希望看到554, 551, 553, 563, 562, 575, 581, 560, 576, 577, 578, 579 打印在每行的最后一个单元格中。

【问题讨论】:

    标签: python string csv


    【解决方案1】:
    >>> ','.join(map(str,(554, 551, 553, 563, 562, 575, 581, 560, 576, 577, 578, 579)))
    '554,551,553,563,562,575,581,560,576,577,578,579'
    >>> 
    

    【讨论】:

      【解决方案2】:

      我不确定您确切想要的输出,我稍微简化了您发布的代码以使其运行,但如果您将 seq 定义为列表并执行以下操作:

      import csv
      
      seq= [554,551,553,563,562,575,581,560,576,577,578,579]
      writer=csv.writer(open('testFile.csv','wb'))
      for i in range(3):
              outLists = [[i,'2014','8',1,4,'00'],[str(val) for val in seq]]
              outFin = [item for subList in outLists for item in subList]
              writer.writerow(outFin)
      

      你会得到一个没有任何引号或括号的输出,如下所示:

      0,2014,8,1,4,00,554,551,553,563,562,575,581,560,576,577,578,579
      1,2014,8,1,4,00,554,551,553,563,562,575,581,560,576,577,578,579
      2,2014,8,1,4,00,554,551,553,563,562,575,581,560,576,577,578,579
      

      但是,wwii 的回答会在您的最后一个单元格周围加上引号,这在文本编辑器中对您来说可能看起来不对,但会让 MS Excel 等软件创建您想要的最终单元格。这将在文本编辑器中如下所示:

      0,2014,8,1,4,00,"554,551,553,563,562,575,581,560,576,577,578,579"
      1,2014,8,1,4,00,"554,551,553,563,562,575,581,560,576,577,578,579"
      2,2014,8,1,4,00,"554,551,553,563,562,575,581,560,576,577,578,579"
      

      由这段代码生成:

      import csv
      
      seq = ','.join(map(str,(554, 551, 553, 563, 562, 575, 581, 560, 576, 577, 578, 579)))
      '554,551,553,563,562,575,581,560,576,577,578,579'
      writer=csv.writer(open('testFile.csv','wb'))
      for i in range(3):
              withQuotes = (i,'2014','8',1,4,'00',seq)
              writer.writerow(withQuotes)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-20
        • 1970-01-01
        • 2018-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多