Python案例如何写入CSV数据?

wen python案例 12

本文目录导读:

Python案例如何写入CSV数据?

  1. 方法一:使用 csv 模块(推荐)
  2. 方法二:使用 pandas 库(适用于大数据处理)
  3. 方法三:追加写入(不覆盖已有数据)
  4. 完整示例:读取和写入结合
  5. 注意事项

在Python中写入CSV数据有多种方法,以下是几种常用的方式:

使用 csv 模块(推荐)

写入单行数据

import csv
# 写入单行数据
with open('data.csv', mode='w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['姓名', '年龄', '城市'])  # 写入表头
    writer.writerow(['张三', 25, '北京'])      # 写入数据

写入多行数据

import csv
# 准备数据
data = [
    ['姓名', '年龄', '城市'],  # 表头
    ['张三', 25, '北京'],
    ['李四', 30, '上海'],
    ['王五', 28, '广州']
]
# 写入多行数据
with open('data.csv', mode='w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerows(data)  # 一次性写入所有行

使用字典写入(更清晰)

import csv
# 准备字典数据
data = [
    {'姓名': '张三', '年龄': 25, '城市': '北京'},
    {'姓名': '李四', '年龄': 30, '城市': '上海'},
    {'姓名': '王五', '年龄': 28, '城市': '广州'}
]
# 写入CSV
with open('data.csv', mode='w', newline='', encoding='utf-8') as file:
    fieldnames = ['姓名', '年龄', '城市']  # 字段名称
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()  # 写入表头
    writer.writerows(data)  # 写入所有数据

使用 pandas 库(适用于大数据处理)

import pandas as pd
# 创建DataFrame
data = {
    '姓名': ['张三', '李四', '王五'],
    '年龄': [25, 30, 28],
    '城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
# 写入CSV文件
df.to_csv('data.csv', index=False, encoding='utf-8')

追加写入(不覆盖已有数据)

import csv
# 追加模式写入
with open('data.csv', mode='a', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['赵六', 35, '深圳'])

完整示例:读取和写入结合

import csv
# 准备源数据
source_data = [
    ['产品', '价格', '库存'],
    ['苹果', 5.5, 100],
    ['香蕉', 3.2, 150],
    ['橙子', 4.8, 80]
]
# 写入CSV
with open('products.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerows(source_data)
# 读取并处理数据
with open('products.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    header = next(reader)  # 跳过表头
    for row in reader:
        product, price, stock = row
        print(f"产品: {product}, 价格: {price}, 库存: {stock}")

注意事项

  1. 编码问题:使用 encoding='utf-8' 避免中文乱码
  2. newline参数:使用 newline='' 避免空行问题
  3. 文件模式
    • 'w':覆盖写入
    • 'a':追加写入
    • 'x':只创建新文件(文件已存在会报错)

选择哪种方法取决于你的需求:

  • 简单任务:使用 csv 模块
  • 处理复杂数据或大量数据:使用 pandas
  • 需要精细控制:使用 csv 模块的自定义选项

抱歉,评论功能暂时关闭!