【问题标题】:Exporting list to CSV in one column在一列中将列表导出为 CSV
【发布时间】:2021-02-21 01:33:21
【问题描述】:

我想在单个列中将列表导出到 csv,每个条目开始一个新行。

我的清单是这样的:

['Jimmy French', 'Casey Fryer', 'Jane Pickens', 'Tommy L. Garcetti', 'Nada Lewis']

在另一个堆栈溢出问题之后,我的代码如下:

with open("export_5.csv","w") as f:
    w = csv.writer(f, lineterminator=',')
    w.writerow(phone_names_value_list)

输出是:

Jimmy French,Casey Fryer,Jane Pickens,Tommy L. Garcetti,Nada Lewis,

这是因为我在记事本中查看它吗?有什么我应该更改以使其打印在一列中的吗?

**另外,如何删除逗号?

【问题讨论】:

  • 在excel中查看csv文件
  • 这是因为您的列表是一维列表,当您使用w.writerow(list) 时,它假定列表应该是一行并这样写。

标签: python python-3.x list csv export-to-csv


【解决方案1】:

你可以这样写:

with open("export_5.csv","w") as f:
    w = csv.writer(f, lineterminator='\n')
    for item in phone_names_value_list:
        w.writerow([item])

或者使用 pandas,你可以这样做:

import pandas as pd
a=['Jimmy French', 'Casey Fryer', 'Jane Pickens', 'Tommy L. Garcetti', 'Nada Lewis']
df=pd.DataFrame(a)
df.to_csv('output_file.csv', index=False,header=None)

【讨论】:

  • 输出有:```ⱔⱡⱴⱹⱡɱⱡⱐⱈⱞⱐⱆⱃⱡⱳⱥⱹᵽⱨɐⱷⱡɱⱊⱊⱐⱊɐⱹɱⱥⱳⱄⱐⱌⱞⱐⱂɐɐɱⱥⱎⱡⱪɽⱡⱐⱇ``` span>
  • 第一次迭代。这里不能用pandas。还加了,encoding='utf-8'
  • 算了!刚刚在电脑上用excel查了一下。它工作正常。
  • 这只是因为您使用了lineterminator=',' 逗号作为行终止符,这就是为什么您无法在记事本中正确看到它的原因。我已将其编辑为 lineterminator='\n' 现在您也可以在记事本中正确查看它
【解决方案2】:

单列 csv 是一个纯文本文件,每行一个字段。打印出来。

可能的代码:

with open("export_5.csv","w") as f:
    for field in phone_names_value_list:
        print(field, file=f)

上面代码中唯一的问题是,没有任何东西可以保证这些行将以\r\n结尾,因为正确的csv文件应该是这样。如果这很重要,您将不得不以二进制模式明确地编写它们:

with open("export_5.csv","bw") as f:
    for field in phone_names_value_list:
        print(field.encode() + b'\r\n', file=f)

【讨论】:

  • 别忘了转义逗号
猜你喜欢
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 2017-07-20
  • 2021-08-16
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多