【问题标题】:How to write item in list to a row on a csv with python [duplicate]如何使用python将列表中的项目写入csv上的一行[重复]
【发布时间】:2020-08-17 06:14:02
【问题描述】:

我有一个名为 itemresults 的列表,如下所示:

['24500', '17000', '60000', '56300', '24500', '24500', '114950', '32000', '70000', '46948', '133000', '49550', '51600', '35995', '44500', '19300', '34200', '39964', '59900', '27999', '16100', '39000', '78995', '19101', '25000', '30000', '72000', '39900', '30000', '29000', '24900', '22990', '52600', '82600', '64000', '13999', '29500', '46800', '95000', '42900', '32500', '3969', '36000', '32995', '24000', '49999.99', '37500', '34000', '47600', '43500', '28500']

我想将其写入 csv 文件,以便每一行都是列表中的一个项目,因此基本上看起来像这样:

24500
17000
60000
56300
24500
.....

我尝试过使用不同的方法来执行此操作,但每次都只是将整个列表写入一个单元格。我试过使用这样的嵌套列表:

outputFile = open('outputFile.csv', 'w', newline='') 
outputWriter = csv.writer(outputFile)
outputWriter.writerow([elements])

但这仍然只是将整个列表写入第一个单元格。我希望将每个项目写入新行。有谁知道我怎么能做到这一点?谢谢

【问题讨论】:

    标签: python csv


    【解决方案1】:

    试试这个..

    import csv
    
    itemresults = ['24500', '17000', '60000', '56300', '24500', '24500', '114950', '32000', '70000', '46948', '133000', '49550', '51600', '35995', '44500', '19300', '34200', '39964', '59900', '27999', '16100', '39000', '78995', '19101', '25000', '30000', '72000', '39900', '30000', '29000', '24900', '22990', '52600', '82600', '64000', '13999', '29500', '46800', '95000', '42900', '32500', '3969', '36000', '32995', '24000', '49999.99', '37500', '34000', '47600', '43500', '28500']
    
    
    filename = 'outputFile.csv'
    with open(filename, 'w') as csvfile:  
        csvwriter = csv.writer(csvfile)
        for x in itemresults:
            csvwriter.writerow([x])
    

    【讨论】:

    • 这很棒!我如何在第二列写第二个列表?
    【解决方案2】:

    这里不需要使用 csv.writer。你可以直接写数字并使用'\n'.join(itemresults)格式化它们:

    ...
    outputFile.write('\n'.join(itemresults))
    ...
    

    【讨论】:

      【解决方案3】:

      您可以使用常规的 python 文件处理来实现这一点:

      your_list = ['24500', '17000', '60000', '56300', '24500', '24500', '114950', '32000', '70000', '46948', '133000', '49550', '51600', '35995', '44500', '19300', '34200', '39964', '59900', '27999', '16100', '39000', '78995', '19101', '25000', '30000', '72000', '39900', '30000', '29000', '24900', '22990', '52600', '82600', '64000', '13999', '29500', '46800', '95000', '42900', '32500', '3969', '36000', '32995', '24000', '49999.99', '37500', '34000', '47600', '43500', '28500']
      
      with open("outputFile.csv", "w") as outputFile:
        for item in your_list:
          outputFile.write(f'{item}\n')
      
      

      【讨论】:

        【解决方案4】:

        从列表中创建一个 DataFrame,然后创建 csv

        # import pandas as pd 
        import pandas as pd 
          
        # list of strings 
        lst = ['Geeks', 'For', 'Geeks', 'is',  
                    'portal', 'for', 'Geeks'] 
          
        # Calling DataFrame constructor on list 
        df = pd.DataFrame(lst) 
        
        df.to_csv("result.csv")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-10
          • 2019-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-03
          • 2019-06-05
          相关资源
          最近更新 更多