在 Python 中,将数据转换为 CSV 文件有几种常见的方法,以下是几种常用的方式:
使用 csv 模块
import csv
# 示例数据
data = [
['姓名', '年龄', '城市'],
['张三', 25, '北京'],
['李四', 30, '上海'],
['王五', 28, '广州']
]
# 写入 CSV 文件
with open('output.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerows(data)
print("CSV 文件已创建!")
使用 pandas 库(推荐)
import pandas as pd
# 创建 DataFrame
data = {
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 28],
'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
# 保存为 CSV 文件
df.to_csv('output.csv', index=False, encoding='utf-8-sig')
print("CSV 文件已创建!")
从字典列表转换为 CSV
import csv
# 字典列表
data = [
{'姓名': '张三', '年龄': 25, '城市': '北京'},
{'姓名': '李四', '年龄': 30, '城市': '上海'},
{'姓名': '王五', '年龄': 28, '城市': '广州'}
]
# 获取列名
fieldnames = data[0].keys()
# 写入 CSV 文件
with open('output.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV 文件已创建!")
从数据库查询结果转换为 CSV
import csv import sqlite3 # 连接数据库 conn = sqlite3.connect('example.db') cursor = conn.cursor() # 查询数据 cursor.execute("SELECT FROM users") rows = cursor.fetchall() # 获取列名 columns = [description[0] for description in cursor.description] # 写入 CSV 文件 with open('output.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(columns) writer.writerows(rows) conn.close() print("CSV 文件已创建!")
常用参数说明
pandas 的 to_csv 常用参数:
index: 是否写入行索引,默认Trueencoding: 编码格式,推荐使用utf-8-sig(支持 Excel 打开中文)sep: 分隔符,默认是逗号header: 是否写入列名,默认Truena_rep: 缺失值的表示,默认是空字符串
csv 模块的常用参数:
newline='': 防止在 Windows 上出现空行encoding='utf-8': 指定编码格式
读取 CSV 文件
import pandas as pd
# 使用 pandas 读取
df = pd.read_csv('output.csv', encoding='utf-8-sig')
print(df)
# 使用 csv 模块读取
import csv
with open('output.csv', 'r', encoding='utf-8-sig') as file:
reader = csv.reader(file)
for row in reader:
print(row)
推荐
- 简单场景:使用
csv模块 - 复杂数据处理:使用
pandas(功能更强大,代码更简洁) - 大数据量:考虑使用
pandas的分块读取功能
选择哪种方法取决于你的具体需求和数据复杂度。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/478752.html



