Python CSV导出案例如何写入表格数据

wen python案例 23

本文目录导读:

Python CSV导出案例如何写入表格数据

  1. 案例1:使用csv模块写入基础CSV
  2. 案例2:使用csv.writer逐行写入
  3. 案例3:使用DictWriter写入字典数据
  4. 案例4:处理特殊字符和复杂数据
  5. 案例5:动态生成数据并写入
  6. 案例6:使用pandas写入(推荐用于大数据)
  7. 重要提示:

我来为您提供几个Python CSV导出写入表格数据的完整案例。

案例1:使用csv模块写入基础CSV

import csv
# 准备数据
data = [
    ['姓名', '年龄', '城市', '职业'],
    ['张三', 25, '北京', '工程师'],
    ['李四', 30, '上海', '设计师'],
    ['王五', 28, '广州', '产品经理'],
    ['赵六', 35, '深圳', '架构师']
]
# 写入CSV文件
with open('employees.csv', 'w', newline='', encoding='utf-8-sig') as file:
    writer = csv.writer(file)
    writer.writerows(data)
print("CSV文件创建成功!")

案例2:使用csv.writer逐行写入

import csv
# 写入CSV文件
with open('students.csv', 'w', newline='', encoding='utf-8-sig') as file:
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['姓名', '学科', '成绩', '评级'])
    # 逐行写入数据
    writer.writerow(['小明', '数学', 95, 'A'])
    writer.writerow(['小红', '语文', 88, 'B'])
    writer.writerow(['小华', '英语', 92, 'A'])
    writer.writerow(['小李', '科学', 78, 'C'])
print("学生成绩表创建成功!")

案例3:使用DictWriter写入字典数据

import csv
# 准备字典数据
data = [
    {'name': '张三', 'age': 25, 'department': '技术部', 'salary': 15000},
    {'name': '李四', 'age': 30, 'department': '市场部', 'salary': 18000},
    {'name': '王五', 'age': 28, 'department': '人事部', 'salary': 12000},
    {'name': '赵六', 'age': 35, 'department': '财务部', 'salary': 20000}
]
# 写入CSV文件
with open('employees_detail.csv', 'w', newline='', encoding='utf-8-sig') as file:
    fieldnames = ['name', 'age', 'department', 'salary']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    # 写入表头
    writer.writeheader()
    # 写入数据
    writer.writerows(data)
print("员工详细信息表创建成功!")

案例4:处理特殊字符和复杂数据

import csv
# 复杂数据示例(包含特殊字符)
data = [
    ['产品名称', '描述', '价格', '库存数量'],
    ['笔记本电脑', '15.6英寸, 8GB内存, 256GB固态', 5999.99, 50],
    ['无线鼠标', '双模连接, 静音设计, 充电型', 129.50, 200],
    ['机械键盘', '青轴, RGB背光, 104键', 399.00, '已售罄'],
    ['显示器', '27英寸, 4K分辨率, HDR', '2,999', 30]
]
with open('products.csv', 'w', newline='', encoding='utf-8-sig') as file:
    writer = csv.writer(file, 
                       quoting=csv.QUOTE_ALL,  # 所有字段加引号
                       delimiter=',',          # 分隔符
                       quotechar='"',          # 引号字符
                       doublequote=True)       # 双重引号优化
    writer.writerows(data)
print("产品数据表创建成功!")

案例5:动态生成数据并写入

import csv
from datetime import datetime
# 模拟生成销售数据
def generate_sales_data():
    sales_data = []
    # 表头
    sales_data.append(['日期', '产品ID', '产品名称', '销售量', '销售额'])
    # 模拟数据
    products = ['A001', 'A002', 'A003', 'B001']
    product_names = ['手机', '平板', '耳机', '充电器']
    for i in range(10):
        import random
        product_idx = random.randint(0, 3)
        sales_data.append([
            datetime.now().strftime('%Y-%m-%d'),
            products[product_idx],
            product_names[product_idx],
            random.randint(5, 100),
            round(random.uniform(500, 5000), 2)
        ])
    return sales_data
# 写入CSV文件
sales = generate_sales_data()
with open('daily_sales.csv', 'w', newline='', encoding='utf-8-sig') as file:
    writer = csv.writer(file)
    writer.writerows(sales)
print("销售数据表创建成功!")
print(f"共写入 {len(sales)-1} 条销售记录")

案例6:使用pandas写入(推荐用于大数据)

import pandas as pd
# 创建DataFrame
data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '年龄': [25, 30, 28, 35],
    '城市': ['北京', '上海', '广州', '深圳'],
    '工资': [15000, 18000, 12000, 20000]
}
df = pd.DataFrame(data)
# 写入CSV文件
df.to_csv('employees_pandas.csv', 
          index=False,  # 不保存行索引
          encoding='utf-8-sig',  # 编码设置
          sep=',',  # 分隔符
          mode='w',  # 写入模式
          header=True)  # 包含表头
print("使用pandas创建CSV文件成功!")
print(df.head())  # 显示前几行数据

重要提示:

  1. 编码问题:使用 utf-8-sig 编码可以在Excel中正确显示中文
  2. 换行问题:Windows系统需要添加 newline='' 参数避免多余空行
  3. 引号处理:如果数据中包含逗号,需要设置 quoting=csv.QUOTE_ALL
  4. 文件路径:建议使用绝对路径或 os.path.join() 构建路径

选择哪个案例取决于您的具体需求:

  • 简单数据:案例1最直接
  • 字典数据:案例3最方便
  • 大型数据:案例6最推荐
  • 特殊字符:案例4最安全

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