繁体   English   中英

Python:将列表列表写入 CSV

[英]Python: Write list of lists to CSV

在我的 python 脚本中,我有一个具有以下结构的列表:

['00:00', 'abc', '2', 'xyz']
['00:01', 'cde', '3', 'sda']

等等。 我想以每个元素都在单独的行中并且一个元素中的每个字符串都在单独的列中的方式将此列表写入 csv 文件。 所以我想在 csv 文件中得到以下结果:

     A     |     B    |     C    |     D
1  00:00   |    abc   |     2    |    xyz     
2  00:01   |    xyz   |     3    |    sda

目前我有这样的代码:

with open('test1.csv',mode='w',encoding='UTF-8') as result_file:
    wr = csv.writer(result_file, dialect='excel')
    for x in data:
        wr.writerow(x)

我得到的结果是列表的每个元素都写入 A 列,所以它看起来像这样:

             A               |       
1  '00:00','abc','2','xyz'   |

如何实现将每个字符串拆分为 csv 文件中的单独列?

- 编辑

如果我从前三个答案中运行代码,我会得到相同的结果(分隔符除外):

在此处输入图片说明

但我的想法是在 A 列中获得 00:00,在 B 列中获得 -6 等等。

每个列表在 CSV 文件中的显示方式取决于数据结构data是什么。

对于要成为列表列表的data ,以下代码应该可以正常工作。

import csv

data = []
d1 = ['00:00', 'abc', '2', 'xyz']
d2 = ['00:01', 'cde', '3', 'sda']

data.append(d1)
data.append(d2)

with open('results_file.csv', mode='w') as results_file:
    results_writer = csv.writer(results_file, delimiter='|', quotechar='"', 
        quoting=csv.QUOTE_MINIMAL)
    results_writer.writerow(['A','B','C','D'])
    for x in data:
        results_writer.writerow(x)

results_file.csv 看起来像:

A|B|C|D
00:00|abc|2|xyz
00:01|cde|3|sda

pandas方法怎么样? 好看又简单...

import pandas as pd

data = [['00:00', 'abc', '2', 'xyz'], ['00:01', 'cde', '3', 'sda']] 
cols = ['A', 'B', 'C', 'D']

# Load data into a DataFrame.
df = pd.DataFrame(data, columns=cols)
# Write the CSV.
df.to_csv('output.csv', sep='|', index=False)

根据文档,您可以使用sep参数更改分隔符。

[编辑]输出:

控制台显示的output.csv内容:

user@host ~/Desktop/so
$ cat output.csv
A|B|C|D
00:00|abc|2|xyz
00:01|cde|3|sda

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM