前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python从0到100(二十二):用Python读写CSV文件

Python从0到100(二十二):用Python读写CSV文件

原创
作者头像
是Dream呀
发布2024-05-28 19:56:33
3040
发布2024-05-28 19:56:33
举报
文章被收录于专栏:总结xyp总结xyp
在这里插入图片描述
在这里插入图片描述

一、CSV文件概述

CSV,即逗号分隔值(Comma Separated Values),是一种以纯文本形式存储表格数据的通用格式。它因其简洁和易于使用而广泛应用于数据交换,如在数据库、电子表格等应用程序中导入和导出数据。CSV文件的纯文本特性使其与操作系统和编程语言无关,大多数编程语言都提供了处理CSV文件的功能,使其在数据处理和科学领域中极为流行。

CSV文件的主要特点包括:

  1. 纯文本格式:使用特定字符集(如ASCII、Unicode、GB2312等);
  2. 记录组成:由多条记录构成,通常每行代表一条记录;
  3. 字段分隔:记录内的字段(列)通过分隔符(如逗号、分号、制表符)分隔;
  4. 字段序列一致:所有记录具有相同的字段顺序。

CSV文件不仅可用文本编辑器查看和编辑,还能在如Excel这样的电子表格软件中打开,几乎与原生电子表格文件无异。数据库系统通常支持将数据导出为CSV格式,也支持从CSV文件导入数据。

二、将数据写入CSV

假设我们需要将五个学生的三门课程成绩保存到CSV文件中。在Python中,我们可以使用内置的csv模块来实现。csv模块的writer对象允许我们通过writerowwriterows方法将数据写入CSV文件。以下是实现的示例代码:

代码语言:python
代码运行次数:0
复制
import csv
import random

# 打开文件用于写入,'w'模式表示写入,如果文件不存在则创建
with open('scores.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['姓名', '语文', '数学', '英语'])
    # 学生姓名列表
    names = ['关羽', '张飞', '赵云', '马超', '黄忠']
    for name in names:
        # 为每个学生生成三门课程的随机分数,并插入姓名
        scores = [random.randint(50, 100) for _ in range(3)]
        scores.insert(0, name)
        # 写入一行数据
        writer.writerow(scores)

执行上述代码后,生成的CSV文件内容示例:

csv.writer函数还允许我们通过dialect参数指定CSV的方言,默认为excel。我们也可以通过delimiterquotecharquoting参数自定义分隔符、引用字符和引用方式。例如,当字段中包含特殊字符时,使用引用字符可以避免歧义。以下是对csv.writer的一个简单自定义示例:

代码语言:python
代码运行次数:0
复制
# 使用竖线作为分隔符,并设置所有字段都被引用
writer = csv.writer(file, delimiter='|', quoting=csv.QUOTE_ALL)

使用自定义设置生成的CSV文件内容示例:

三、从CSV文件读取数据

要读取CSV文件中的数据,我们可以使用csv.reader对象,它是一个迭代器,允许我们通过next方法或for-in循环来获取数据。以下是读取CSV文件的示例代码:

代码语言:python
代码运行次数:0
复制
import csv

# 打开文件用于读取,'r'模式表示读取
with open('scores.csv', 'r', encoding='utf-8') as file:
    reader = csv.reader(file, delimiter='|')
    # 遍历CSV文件中的每一行
    for line_num, data_list in enumerate(reader, start=1):
        print(f"行号: {line_num}\t", end='')
        for elem in data_list:
            print(f"{elem}\t", end='')
        print()  # 换行

注意:在对csv.reader对象进行for循环时,每次迭代会得到一个包含该行所有字段的列表。

四、小结

在Python数据分析领域,pandas库是一个强大的工具。它提供了read_csvto_csv函数,用于简化CSV文件的读写操作。read_csv函数可以将CSV数据读取为DataFrame对象,而DataFramepandas中用于数据处理的核心数据结构,它包含了丰富的数据处理功能,如数据清洗、转换和聚合等。相对地,to_csv函数可以将DataFrame对象中的数据导出到CSV文件中,实现数据的持久化存储。这些函数相比原生的csv.readercsv.writer提供了更高级的功能和更好的易用性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CSV文件概述
  • 二、将数据写入CSV
  • 三、从CSV文件读取数据
  • 四、小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档