当前位置: 首页 > news >正文

python中CSV模块详解

Python 中的 csv 模块用于读写 CSV(Comma-Separated Values)文件,这是一种常用的文件格式,用于存储表格数据,如电子表格或数据库中的数据。CSV 文件通常由逗号分隔的字段组成,每行代表数据表中的一行。

基本读取操作
使用 csv.reader 读取 CSV 文件时,需指定文件对象(以文本模式打开,推荐使用 newline='' 避免空行问题)。读取结果按行返回列表,每个元素对应一个字段。例如:

import csv
with open('data.csv', mode='r', encoding='utf-8-sig') as file:
csv_reader = csv.reader(file)
for row in csv_reader:
print(row) # 输出每行数据列表


基本写入操作
使用 csv.writer 将数据写入 CSV 文件。数据需以列表或元组形式组织,模块自动处理分隔符和引号。例如:

import csv
data = [['姓名', '年龄'], ['张三', 25], ['李四', 30]]
with open('output.csv', mode='w', encoding='utf-8-sig', newline='') as file:
csv_writer = csv.writer(file)
csv_writer.writerows(data) # 批量写入多行


字典形式读写
对于更直观的操作,可使用 csv.DictReader 和 csv.DictWriter,以字典形式处理数据(键为表头字段)。例如:

import csv
# 读取时
with open('data.csv', mode='r', encoding='utf-8-sig') as file:
dict_reader = csv.DictReader(file)
for row in dict_reader:
print(row['姓名'], row['年龄']) # 直接通过键访问字段

# 写入时
fieldnames = ['姓名', '年龄']
with open('output.csv', mode='w', encoding='utf-8-sig', newline='') as file:
dict_writer = csv.DictWriter(file, fieldnames=fieldnames)
dict_writer.writeheader() # 写入表头
dict_writer.writerow({'姓名': '王五', '年龄': 28})


高级参数与场景
‌自定义分隔符‌:通过 delimiter 参数指定分隔符(如制表符 \t 或分号 ;),适用于非标准 CSV 文件。‌
‌追加模式‌:写入时使用 mode='a' 可追加数据到文件末尾,避免覆盖原有内容。‌
‌错误处理‌:字段包含分隔符或换行时,模块自动用引号包裹,无需手动处理复杂情况。‌
注意事项
文件编码建议使用 utf-8-sig 以正确处理中文。‌
大文件读取时推荐逐行遍历以节省内存;小文件可一次性读取为列表。‌
写入模式 mode='w' 会覆盖文件,如需保留原内容应使用 mode='a'

4. 自定义分隔符和引号处理
默认情况下,csv 模块使用逗号作为分隔符,双引号作为字段的引号。你可以通过传递参数来改变这些设置:

with open('example.csv', 'w', newline='') as file:
writer = csv.writer(file, delimiter=';', quotechar="'", quoting=csv.QUOTE_MINIMAL)
writer.writerow(['Name', 'Age', 'City']) # 使用分号分隔,单引号引号字段(如果需要)
5. 处理大文件和性能优化
对于大文件,推荐使用 csv.reader 和 csv.DictReader 的迭代器功能,这样可以避免一次性将整个文件内容加载到内存中:

with open('large_file.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
# 处理每一行数据,不会一次性加载整个文件到内存中
pass
6. 处理编码问题
当处理包含非ASCII字符的CSV文件时,需要指定正确的编码:

with open('example.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row) # 使用 UTF-8 编码读取文件内容,适用于包含中文等字符的文件
通过上述方法,你可以有效地使用 Python 的 csv 模块来读写 CSV 文件。

pandas操作csv

if __name__ == '__main__':
import pandas as pd
with open('./files/test1.csv')as file:
data = pd.read_csv(file)
print(data)
 

 

在Python中导入CSV文件和Excel文件的方法如下:

1.导入CSV文件:

2.首先,导入pandas库:import pandas as pd

3.然后,使用pd.read_csv()函数导入CSV文件,例如:df = pd.read_csv('文件路径.csv')

4.导入Excel文件:

5.首先,同样导入pandas库:import pandas as pd

6.然后,使用pd.read_excel()函数导入Excel文件,例如:df = pd.read_excel('文件路径.xlsx')

7.如果需要导入特定的工作表,可以设置sheet_name参数,例如:df = pd.read_excel('文件路径.xlsx', sheet_name='工作表名称')

8.如果需要设置表头或导入特定列,可以使用header和usecols参数进行设置。

参考:https://blog.csdn.net/tekin_cn/article/details/145965863

 

http://www.jsqmd.com/news/77991/

相关文章:

  • 2025年度五大郑州充电桩品牌排行榜,便易充实力如何? - mypinpai
  • 2025 年企业智能 BI 私有化部署厂商推荐 :BI 私有化方案商、本地私有化厂商如何助力企业重构数据决策体系 - 品牌2026
  • 2025年江苏点茶研学机构权威推荐榜单:江苏抹茶研学公司/江苏点茶流程/江苏点茶技艺研学机构精选 - 品牌推荐官
  • 2025年沙子烘干机生产厂家推荐榜单:烘干机‌/污泥烘干机‌/滚筒烘干机源头厂家精选 - 品牌推荐官
  • Lottie动画技术实战手册:从AE设计到Web部署全流程
  • Open-AutoGLM 上手:开源的手机操作智能体
  • Visual C++运行库缺失问题全面解决方案
  • SAP-MM采购申请批导程序-BAPI_PR_CREATE
  • 2025年湖南口碑好的金刚砂材料正规公司排行榜,值得推荐的金 - myqiye
  • 2025陕西优质短视频拍摄公司TOP5权威推荐:本地企业获客 - 工业品牌热点
  • 办公室下午茶小包装零食推荐:我工位抽屉里那套“更轻负担”的 Fixbody 清单 - AIEO
  • 2025比较好的手表OEM生产厂家TOP5测评:甄选优质伙伴 - 工业推荐榜
  • 汽车测试技术解析:小型高低温试验箱在多场景下的应用与优势
  • 筑牢工业信息安全防线:全栈国产化如何为关键行业构建“免疫系统”
  • 15分钟构建JRE版本兼容性测试工具
  • 2025不容错过!山东十大阿胶生产厂家实力解析,膏方类产品/阿胶类/阿胶/阿胶产品/阿胶类产品/阿胶糕/非遗膏方/膏方阿胶采购有哪些 - 品牌推荐师
  • CodeQwen1.5微服务开发实战:从架构设计到部署上线的完整指南
  • 如何用AI快速定位和解决Spring启动异常
  • 一站式网络安全学习路线:零基础入门到精通全程详解
  • 2025表格AI突破:MachineLearningLM实现多示例学习跃升,表格分类准确率提升15%
  • 企业IT管理实战:如何安全解除应用拦截
  • 30亿参数改写AI格局:ERNIE 4.5-VL-28B-A3B如何重塑企业智能应用
  • 从零玩转RT-Thread(19):
  • 双重遗忘机制对比实验传统Sigmoid激活与ReLU变体的优劣分析
  • 万亿参数大模型成本直降80%:Kimi K2如何用MoE架构重塑企业AI应用
  • 用du命令数据构建实时磁盘监控仪表盘
  • 告别重复劳动:useEffect最佳实践提升开发效率
  • 对比实验:LangChain-ChatChat vs 传统对话开发效率
  • 政务工作的救星ChatPPT:演讲稿生成PPT 真的超棒!
  • 用Spyder快速验证你的数据科学想法