Python自学17 - Python读写CSV文件

Python自学17 - Python读写CSV文件

Python自学17 - Python读写CSV文件在数据处理和分析的工作中,CSV(Comma-Separated Values,逗号分隔值)文件是一种非常常见的数据存储格式。

它结构简单、易于阅读,并且被广泛应用于 Excel、数据库、数据分析工具等场景之间的数据传输。

Python 作为一门强大的编程语言,提供了多种便捷的方式来读写 CSV 文件,本次课程将详细介绍两种常用的方法:使用 Python 内置的csv模块和第三方库pandas,帮助大家轻松掌握 CSV 文件的操作技巧。

1️⃣ 什么是 CSV 文件纯文本格式,以逗号(,)分隔字段每一行代表一条记录第一行通常是表头(列名)兼容性好,可用 Excel、Google Sheets、数据库等直接打开示例:

代码语言:javascript代码运行次数:0运行复制Name,Age,City

Alice,30,New York

Bob,25,Los Angeles

Charlie,35,Chicago2️⃣ Python 读写 CSV 的常用方式Python 提供了两种主流方式:

方法

特点

适用场景

csv 标准库

内置,无需安装

小文件、简单读写

pandas 库

功能强大,支持数据分析

大文件、复杂数据处理

3️⃣ 使用 csv 模块读写3.1 读取 CSV 文件代码语言:javascript代码运行次数:0运行复制import csv

# 读取 CSV 文件

with open('input.csv', mode='r', newline='', encoding='utf-8') as infile:

reader = csv.reader(infile)

for row in reader:

print(row) # 每行是一个列表注意事项:

newline='' 避免多余空行encoding='utf-8-sig' 可避免 Excel 打开时中文乱码3.2 写入 CSV 文件代码语言:javascript代码运行次数:0运行复制import csv

data = [

['Name', 'Age', 'City'],

['Alice', 30, 'New York'],

['Bob', 25, 'Los Angeles']

]

with open('output.csv', mode='w', newline='', encoding='utf-8-sig') as outfile:

writer = csv.writer(outfile)

writer.writerows(data) # 一次写入多行3.3 使用字典读写(更直观)代码语言:javascript代码运行次数:0运行复制import csv

# 写入

with open('people.csv', mode='w', newline='', encoding='utf-8-sig') as f:

fieldnames = ['Name', 'Age', 'City']

writer = csv.DictWriter(f, fieldnames=fieldnames)

writer.writeheader()

writer.writerow({'Name': 'Alice', 'Age': 30, 'City': 'New York'})

writer.writerow({'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'})

# 读取

with open('people.csv', mode='r', encoding='utf-8-sig') as f:

reader = csv.DictReader(f)

for row in reader:

print(row['Name'], row['City'])4️⃣ 使用 pandas 读写(推荐数据分析场景)代码语言:javascript代码运行次数:0运行复制import pandas as pd

# 读取

df = pd.read_csv('input.csv', encoding='utf-8')

print(df.head())

# 写入

df.to_csv('output.csv', index=False, encoding='utf-8-sig')优势:

支持按列筛选、数据统计、缺失值处理等读取速度快,适合大数据量5️⃣ 常见问题与优化建议中文乱码

用 utf-8-sig 编码写入,Excel 打开正常多余空行

打开文件时加 newline=''大文件读取慢

pandas.read_csv() 加 chunksize 分块读取字段中包含逗号

使用 quotechar='"' 包裹字段6️⃣ 实战案例:合并多个 CSV 文件代码语言:javascript代码运行次数:0运行复制import pandas as pd

import glob

# 获取所有 CSV 文件路径

files = glob.glob('data/*.csv')

# 读取并合并

df_list = [pd.read_csv(file) for file in files]

merged_df = pd.concat(df_list, ignore_index=True)

# 保存

merged_df.to_csv('merged.csv', index=False, encoding='utf-8-sig')

print("合并完成!")7️⃣ 总结小文件 → csv 标准库足够大文件/数据分析 → pandas 更高效注意编码、换行、分隔符等细节结合自动化脚本,可轻松实现批量数据处理

相关推荐

探索实用公交应用:哪个实时公交软件更胜一筹?
nba365直播现场视频直播

探索实用公交应用:哪个实时公交软件更胜一筹?

🌍 06-29 👁️ 6092
龙卷风收音机怎么样(龙卷风收音机怎么用啊)
達普桑盆地
365bet官方

達普桑盆地

🌍 08-22 👁️ 7425