【问题标题】:Python write list items to csvPython将列表项写入csv
【发布时间】:2014-11-27 07:14:28
【问题描述】:

我有这段代码,假设将我的列表项导出到 csv 文件 其中文件中的每一行都包含列表中的一个项目。

writer = csv.writer(open(path+"output.csv", 'wb'))
for item in result:
     writer.writerow(item)

我得到的结果很奇怪(列表中前两个项目的示例:“逾期”和“代码”):

p,a,s,t, ,d,u,e
c,o,d,e

我想要得到的结果很简单:

    past due
    code

有什么想法吗?

【问题讨论】:

  • 你能告诉我们你的结果内容吗?

标签: python list csv


【解决方案1】:
csvwriter.writerow(row)

这会将行参数写入写入者的文件对象,根据当前方言格式化。

更多信息请见csvwriter

【讨论】:

    【解决方案2】:

    这里已经有解决方案:Writing List of Strings to Excel CSV File in Python

    您不需要遍历列表中的每个元素。试试这个:

    writer = csv.writer(open(path+"output.csv", 'wb'))
    writer.writerow(result)
    

    【讨论】:

      【解决方案3】:

      writerow 方法接受单个参数,并写入构成其参数的元素的逗号分隔表示。

      通常使用的参数是列表、元组等。显然您使用了字符串,因此写入的是字符串元素的序列

      如果您要迭代的所有元素都是字符串,那么就可以了

      for item in result:
          writer.writerow([item])
      

      但是编写一个只包含一列的 csv 文件是不寻常的,您可能想要编写一个简单的文本文件...如果 result 中的所有元素都是字符串,那么下面的代码

      with of as open('result.txt')
          of.write("\n".join(result))
      

      会做的。

      【讨论】:

        【解决方案4】:

        我认为问题出在这里:

        for item in result:
             writer.writerow(item)
        

        result 变量实际上是一个字符串,这就是为什么它在每个字符后添加一个逗号。 result 不像您的代码所暗示的那样是一个字符串数组——它实际上是一个字符串(一个字符数组)。

        【讨论】:

          【解决方案5】:
          with open('returns.csv', 'wb') as f:
              writer = csv.writer(f)
              for val in daily_returns:
                  writer.writerow([val])
          

          【讨论】:

          • 只适用于python 2。至少解释问题并了解工具的最新情况!
          猜你喜欢
          • 2021-11-09
          • 1970-01-01
          • 1970-01-01
          • 2014-09-21
          • 2016-06-30
          • 2013-07-16
          • 2012-01-02
          • 1970-01-01
          相关资源
          最近更新 更多