Python CSV文件模块的使用案例分析

Python CSV文件模块的使用案例分析

什么是CSV文件?

CSV文件是一种常见且简单的文件格式,全称为“Comma-Separated Values”(逗号分隔值),也可以称为字符分隔值。它的每一行均表示为一条记录,每个字段中的值都用逗号隔开。由于CSV文件格式简单,通用性较好,在数据交换方面有着广泛的应用。

Python CSV文件的操作

Python内置了CSV文件模块,使得操作CSV文件变得更加方便。使用CSV文件模块可以方便地读取和写入CSV文件。

读取CSV文件

我们一般使用csv模块中的csv.reader()函数来读取CSV文件。

import csv

# 打开CSV文件
with open('data.csv', newline='') as csv_file:
    # 创建CSV读取器
    csv_reader = csv.reader(csv_file, delimiter=',', quotechar='"')
    # 逐行读取数据
    for row in csv_reader:
        print(row)

上面的代码中,我们先使用open()函数打开CSV文件,然后使用csv.reader()函数创建一个CSV读取器。读取器中的delimiter参数用于指定分隔符,这里我们将其设为逗号; quotechar参数用于指定数据中的引号,这里我们将其设为双引号。最后,我们使用一个for循环逐行读取数据。

写入CSV文件

使用CSV文件模块也可以方便地写入数据到CSV文件中,一般使用csv模块中的csv.writer()函数来写入CSV文件。

import csv

# 写入CSV文件
with open('data.csv', mode='w', newline='') as csv_file:
    # 创建CSV写入器
    csv_writer = csv.writer(csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    # 写入表头
    csv_writer.writerow(['姓名', '年龄'])
    # 写入数据
    csv_writer.writerow(['小明', 18])
    csv_writer.writerow(['小红', 19])

上面的代码中,我们先使用open()函数创建一个CSV文件。然后使用csv.writer()函数创建一个CSV写入器。quoting参数用于指定如何引用数据,这里我们将其设为csv.QUOTE_MINIMAL,表示只在必要时才加双引号。最后,我们使用csv_writer.writerow()函数将表头和数据写入到CSV文件中。

示例-1

下面是一个具体的示例,演示如何读取一个包含用例结果信息的CSV文件,计算测试用例的成功率和失败率,并输出详细的报告信息。假设我们的CSV文件“test_result.csv”的内容如下:

测试用户,,测试内容,测试结果
张三,,登录,成功
张三,,注册,失败
李四,,登录,成功

测试代码如下:

import csv

# 打开CSV文件
with open('test_result.csv', newline='') as csv_file:
    # 创建CSV读取器
    csv_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"')
    # 初始化变量
    total_case = 0
    success_case = 0
    fail_case = 0
    # 逐行读取数据
    for row in csv_reader:
        total_case += 1  # 总用例数自增
        if row['测试结果'] == '成功':
            success_case += 1  # 成功用例数自增
        elif row['测试结果'] == '失败':
            fail_case += 1  # 失败用例数自增
    # 输出测试报告
    print('---------------------------------------')
    print('测试用例总数:{}'.format(total_case))
    print('测试成功用例数:{}'.format(success_case))
    print('测试失败用例数:{}'.format(fail_case))
    print('测试成功率:{:.2f}%'.format(success_case / total_case * 100))
    print('测试失败率:{:.2f}%'.format(fail_case / total_case * 100))

输出结果如下:

---------------------------------------
测试用例总数:3
测试成功用例数:2
测试失败用例数:1
测试成功率:66.67%
测试失败率:33.33%

示例-2

下面是另一个具体的示例,演示如何通过CSV文件读取和写入邮件列表。假设我们的CSV文件“email_list.csv”的内容如下:

John, john@example.com
David, david@example.com
Lucy, lucy@example.com

测试代码如下:

import csv

# 读取CSV文件
with open('email_list.csv') as csv_file:
    # 创建CSV读取器
    csv_reader = csv.reader(csv_file)
    # 初始化邮件列表
    email_list = []
    # 逐行读取邮件
    for row in csv_reader:
        name, email = row
        email_list.append(email)
    # 输出邮件列表
    print(email_list)

# 写入CSV文件
with open('new_email_list.csv', mode='w', newline='') as csv_file:
    # 创建CSV写入器
    csv_writer = csv.writer(csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    # 写入邮件列表
    for email in email_list:
        csv_writer.writerow([email])

输出结果如下:

['john@example.com', 'david@example.com', 'lucy@example.com']

我们使用csv.reader()函数读取CSV文件,逐行读取数据并初始化邮件列表。然后,我们使用csv.writer()函数将邮件列表写入到新的CSV文件new_email_list.csv中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python CSV文件模块的使用案例分析 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python如何实现不用装饰器实现登陆器小程序

    以下是详细讲解 Python 实现不用装饰器实现登陆器小程序的攻略: 什么是登陆器? 登陆器是指一个用于用户登陆的程序,通常包括用户身份验证、操作控制等功能。 实现不用装饰器的登陆器小程序 在 Python 中,我们可以通过编写函数实现登陆器小程序。具体步骤如下: 定义一个验证用户身份的函数。该函数应当读取存储用户信息的数据文件,并判断用户输入的用户名和密码…

    python 2023年5月23日
    00
  • 对python中大文件的导入与导出方法详解

    对Python中大文件的导入与导出方法详解 在Python中处理大文件时,如果不采用特定的方式,很容易遇到性能和内存等问题。本文将讨论在Python中对大文件进行导入和导出的最佳实践。 导入大文件 当我们需要导入一个非常大的文件时,很容易遇到内存不足的问题,特别是在处理大量文本数据时。在这种情况下,我们可以将文件分块并逐行读取数据。 使用Python的ope…

    python 2023年6月2日
    00
  • Python3中的算术运算符详解

    Python3中的算术运算符详解 算术运算符的作用 Python3中的算术运算符用于执行基本的算术操作,包括加法、减法、乘法、除法、取模和幂运算。 下面是Python3中的算术运算符及其对应的操作: 符号 描述 + 加法 – 减法 * 乘法 / 除法 % 取模运算 ** 幂运算 加法运算 Python3中的加法运算符用于将两个数值相加。假设我们有两个变量a和…

    python 2023年5月14日
    00
  • Python实现的简单排列组合算法示例

    Python实现的简单排列组合算法示例 排列组合是数学中的一个重要概念,也是计算机编程中常用的算法之一。Python中,可以使用递归或迭代的方式实现排列组合算法。下面是一个简单的排列组合算法示例,包含详细的讲解和示例说明。 排列组合算法的定义 排列组合是指从n个同元素中取出m个元素的所有可能情况。其中,如果取出的素有顺序,称为排列;如果取出的素没有顺序,称为…

    python 2023年5月13日
    00
  • Python 编写生成器函数

    生成器函数是一个特殊的函数,它可以使用 yield 关键字来返回一个迭代器,以便使用者能够对产生的值进行逐个迭代。Python 中的很多内置函数,比如 range() 和 enumerate(),都是生成器函数。 下面是编写生成器函数及其使用方法的完整攻略: 编写生成器函数的语法 def generator_function(): # 产生序列中的值 yie…

    python-answer 2023年3月25日
    00
  • Python的Tornado框架的异步任务与AsyncHTTPClient

    Python的Tornado框架的异步任务与AsyncHTTPClient Tornado是一个Python的Web框架,它支持异步I/O操作,可以处理高并发的请求。在Tornado中,我们可以使用异步任务和AsyncHTTPClient来实现异步操作。 异步任务 在Tornado中,我们可以使用异步任务来处理耗时的操作,例如数据库查询、文件读写等。以下是一…

    python 2023年5月15日
    00
  • python使用prettytable内置库美化输出表格

    下面是详细讲解“python使用prettytable内置库美化输出表格”的完整攻略。 什么是prettytable prettytable是Python中的一个内置库,可以用于以一种标准化的方式输出ASCII表格。它可以将数据转换成表格形式,并支持对表格进行格式化、排序和筛选等操作,是一个非常实用的工具。 安装prettytable 在安装prettyta…

    python 2023年6月3日
    00
  • Python实现iOS自动化打包详解步骤

    Python实现iOS自动化打包详解步骤 本文介绍使用Python脚本实现iOS自动化打包的详细步骤。 准备工作 在开始之前,我们需要先准备好以下工具和材料: 一台Mac电脑 Xcode iOS开发者账号 Python3 打包脚本编写 创建python脚本文件,例如 build.py 导入必要的模块 python import os import subpr…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部