本文目录导读:

- 案例1:使用csv模块写入基础CSV
- 案例2:使用csv.writer逐行写入
- 案例3:使用DictWriter写入字典数据
- 案例4:处理特殊字符和复杂数据
- 案例5:动态生成数据并写入
- 案例6:使用pandas写入(推荐用于大数据)
- 重要提示:
我来为您提供几个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()) # 显示前几行数据
重要提示:
- 编码问题:使用
utf-8-sig编码可以在Excel中正确显示中文 - 换行问题:Windows系统需要添加
newline=''参数避免多余空行 - 引号处理:如果数据中包含逗号,需要设置
quoting=csv.QUOTE_ALL - 文件路径:建议使用绝对路径或
os.path.join()构建路径
选择哪个案例取决于您的具体需求:
- 简单数据:案例1最直接
- 字典数据:案例3最方便
- 大型数据:案例6最推荐
- 特殊字符:案例4最安全
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播