Python中如何将列表保存为Excel可打开的CSV文件

lst = [{"a": 1, "b": 1}, {"a": 2, "b": 2},{"a": 3, "b": 3},{"a": 3, "b": 3}] 比如这样


Python中如何将列表保存为Excel可打开的CSV文件
5 回复

用Python把列表存成CSV文件很简单,用内置的csv模块就行。下面给你个例子,假设你有个二维列表(也就是列表里套列表,每个子列表是一行数据):

import csv

# 假设这是你的数据,一个二维列表
data = [
    ["姓名", "年龄", "城市"],
    ["张三", 25, "北京"],
    ["李四", 30, "上海"],
    ["王五", 28, "广州"]
]

# 写入CSV文件
with open('output.csv', 'w', newline='', encoding='utf-8-sig') as f:
    writer = csv.writer(f)
    writer.writerows(data)

print("文件已保存为 output.csv")

关键点:

  1. newline='' 参数是为了避免在Windows上出现空行
  2. encoding='utf-8-sig' 让Excel能正确识别中文编码
  3. writer.writerows(data) 一次性写入所有行

如果你用的是pandas,更简单:

import pandas as pd

data = [["张三", 25], ["李四", 30]]
df = pd.DataFrame(data, columns=["姓名", "年龄"])
df.to_csv('output.csv', index=False, encoding='utf-8-sig')

用csv模块足够处理大多数情况。

英文逗号分隔,中文要编码成 gbk

>>> import csv
>>> f = open(‘d:/tmp/test.csv’, ‘w’, encoding=‘gbk’)
>>> writer = csv.DictWriter(f, fieldnames=[‘a’,‘b’])
>>> for dic in [{“a”: 1, “b”: 1}, {“a”: 2, “b”: 2},{“a”: 3, “b”: 3},{“a”: 3, “b”: 3}]: writer.writerow(dic)

5
5
5
5
>>> f.close()
>>>

import pandas as pd
from pandas import DataFrame
lst = DataFrame([{“a”: 1, “b”: 1}, {“a”: 2, “b”: 2},{“a”: 3, “b”: 3},{“a”: 3, “b”: 3}])
lst.to_csv(‘test.csv’)

回到顶部