【Python基础】一文搞懂:Python 中 csv 文件的写入与读取
创始人
2025-01-09 05:33:58
0

文章目录

    • 1 引言
    • 2 CSV 文件简介
    • 3 Python 中的 csv 模块
    • 4 写入 CSV 文件
      • 4.1 基本用法
      • 4.2 高级用法
    • 5 读取 CSV 文件
      • 5.1 基本用法
      • 5.2 高级用法
    • 6 实例演示
    • 7 注意事项
    • 8 总结

1 引言

在数据处理和数据分析领域,CSV (逗号分隔值) 文件是一种常见的文件格式,用于存储表格数据。Python 通过内置的 csv 模块提供了对 CSV 文件的读写支持,使得处理这种类型的文件变得简单高效。本文将详细介绍如何在 Python 中进行 CSV 文件的读取和写入操作。

2 CSV 文件简介

CSV 文件是一种简单的文本文件,其中的数据由逗号分隔。每行代表一个数据记录,每个记录可以包含多个字段。CSV 文件被广泛用于数据交换和数据存储。

3 Python 中的 csv 模块

Python 的 csv 模块提供了一系列函数来读取和写入 CSV 文件。它可以处理各种类型的 CSV 数据,包括不同的分隔符和引号约定。

4 写入 CSV 文件

4.1 基本用法

import csv  # 数据 data = [     ['Name', 'Age', 'City'],     ['Alice', 30, 'New York'],     ['Bob', 25, 'Los Angeles'] ]  # 写入 CSV 文件 with open('example.csv', 'w', newline='') as file:     writer = csv.writer(file)     writer.writerows(data) 

4.2 高级用法

使用 DictWriter 写入 CSV,提供了字段名的映射。

with open('example.csv', 'w', newline='') as file:     fields = ['Name', 'Age', 'City']     writer = csv.DictWriter(file, fieldnames=fields)      writer.writeheader()     writer.writerow({'Name': 'Alice', 'Age': 30, 'City': 'New York'})     writer.writerow({'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'}) 

5 读取 CSV 文件

5.1 基本用法

# 读取 CSV 文件 with open('example.csv', 'r') as file:     reader = csv.reader(file)     for row in reader:         print(row) 

5.2 高级用法

使用 DictReader 读取 CSV,每行数据被映射到一个字典。

with open('example.csv', 'r') as file:     reader = csv.DictReader(file)     for row in reader:         print(row) 

6 实例演示

以下是一个 Python 示例,演示如何使用 csv 模块来读取和写入 CSV 文件。这个示例将包含两个主要部分:一个用于写入 CSV 文件的函数和另一个用于读取 CSV 文件的函数。我们将这些功能封装在一个名为 csv_example.py 的 Python 文件中。

# csv_example.py import csv  def write_csv(file_name, data, field_names=None):     """ 写入 CSV 文件 """     with open(file_name, 'w', newline='', encoding='utf-8') as file:         if field_names:             writer = csv.DictWriter(file, fieldnames=field_names)             writer.writeheader()             writer.writerows(data)         else:             writer = csv.writer(file)             writer.writerows(data)  def read_csv(file_name):     """ 读取 CSV 文件 """     with open(file_name, 'r', newline='', encoding='utf-8') as file:         reader = csv.reader(file)         for row in reader:             print(row)  def main():     # CSV 文件名     file_name = 'example.csv'      # 数据 - 字典格式     data_dict = [         {'Name': 'Alice', 'Age': 30, 'City': 'New York'},         {'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'}     ]      # 数据 - 列表格式     data_list = [         ['Name', 'Age', 'City'],         ['Alice', 30, 'New York'],         ['Bob', 25, 'Los Angeles']     ]      # 写入 CSV 文件     write_csv(file_name, data_dict, field_names=['Name', 'Age', 'City'])     # 或者使用列表数据     # write_csv(file_name, data_list)      # 读取 CSV 文件     read_csv(file_name)  if __name__ == '__main__':     main() 

运行以上代码控制台输出结果:
[‘Name’, ‘Age’, ‘City’]
[‘Alice’, ‘30’, ‘New York’]
[‘Bob’, ‘25’, ‘Los Angeles’]
并生成文件:“example.csv”,内容如下:
在这里插入图片描述

这个脚本定义了两个函数:write_csvread_csvwrite_csv 函数可以根据传入的数据格式(字典或列表)将数据写入 CSV 文件。read_csv 函数则用于读取 CSV 文件并打印其内容。main 函数中整合了这些操作的流程。运行这个脚本将会创建一个名为 example.csv 的文件,并在其中写入数据,然后读取并打印出这些数据。

7 注意事项

  • 读写文件时,确保使用 newline='' 参数来防止在不同平台上的换行符问题。
  • 对于包含特殊字符的字段,如逗号或引号,csv 模块可以正确处理它们。
  • 在使用 DictReaderDictWriter 时,字段名的顺序是很重要的。

8 总结

Python 中的 csv 模块为处理 CSV 文件提供了强大且灵活的工具。无论您是在进行数据分析还是简单的数据导入导出,掌握如何有效地读写 CSV 文件都是一项非常有用的技能。


希望这篇文章能帮助您理解和掌握 Python 中 CSV 文件的读写操作。如果您有任何疑问或建议,请在评论区留言,让我们共同进步!

作者:climber1121
链接:https://blog.csdn.net/climber1121
来源:CSDN
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...