Python中csv文件的写入与读取方法例子

 更新时间:2023年09月19日 08:27:26   作者:初见~  
这篇文章主要给大家介绍了关于Python中csv文件的写入与读取方法的相关资料,csv是"Comma-Separated Values(逗号分割的值)"的首字母缩写,它其实和txt文件一样,都是纯文本文件,使用Python来读写csv文件是非常容易的,需要的朋友可以参考下

1.csv文件介绍

CSV文件是一种常见的数据格式,它以逗号分隔不同的字段,每行表示一个数据记录。在Python中,我们可以使用csv模块来读取和写入CSV文件。

2.写入CSV文件

在Python中,我们可以使用csv模块的writer对象来写入CSV文件。下面是一个例子:

import csv
# 创建要写入的数据
data = [
    ['张三', 20, '男'],
    ['李四', 25, '女'],
    ['王五', 30, '男']
]
# 打开文件,指定写入模式
with open('data.csv', 'w', newline='') as file:
    # 创建csv写入对象
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['姓名', '年龄', '性别'])
    # 写入数据
    writer.writerows(data)

在上面的例子中,我们首先创建了要写入的数据,它是一个包含多个列表的列表。然后使用open()函数打开文件,并指定写入模式。newline=''表示不使用额外的换行符。接着创建了一个csv写入对象writer,使用writerow()方法写入表头,使用writerows()方法写入数据。最后,使用with语句来自动关闭文件。

需要注意的是,写入CSV文件时,需要将数据转换成字符串格式。如果写入的数据中包含逗号、双引号等特殊字符,需要进行处理。例如:

import csv
# 创建要写入的数据
data = [
    ['张三', 20, '男'],
    ['李四', 25, '女'],
    ['王五', 30, '男'],
    ['"Tom, Jerry"', 35, '男']
]
# 打开文件,指定写入模式
with open('data.csv', 'w', newline='') as file:
    # 创建csv写入对象
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['姓名', '年龄', '性别'])
    # 写入数据
    for row in data:
        # 将包含特殊字符的数据进行处理
        row[0] = row[0].replace('"', '""')
        row[0] = f'"{row[0]}"'
        writer.writerow(row)

在上面的例子中,我们创建了一个包含特殊字符的数据,它包含逗号和双引号。为了写入这个数据,我们需要将双引号进行转义,并在数据前后加上双引号。具体来说,我们使用replace()方法将双引号替换成两个双引号,然后使用f-string将数据前后加上双引号。

3.读取CSV文件

在Python中,我们可以使用csv模块的reader对象来读取CSV文件。下面是一个例子:

import csv
# 打开文件,指定读取模式
with open('data.csv', 'r') as file:
    # 创建csv读取对象
    reader = csv.reader(file)
    # 遍历每一行数据
    for row in reader:
        print(row)

在上面的例子中,我们使用open()函数打开文件,并指定读取模式。然后创建了一个csv读取对象reader,使用for循环遍历每一行数据,并使用print()函数输出。

需要注意的是,在读取CSV文件时,每一行数据都会被解析成一个列表。如果CSV文件中有表头,第一行数据就是表头,可以使用next()函数跳过:

import csv
# 打开文件,指定读取模式
with open('data.csv', 'r') as file:
    # 创建csv读取对象
    reader = csv.reader(file)
    # 跳过表头
    next(reader)
    # 遍历每一行数据
    for row in reader:
        print(row)

在上面的例子中,我们使用next()函数跳过了表头。

另外,如果CSV文件中包含特殊字符,例如逗号、双引号等,需要使用csv.readerquotechar参数来指定转义字符。例如:

import csv
# 打开文件,指定读取模式
with open('data.csv', 'r') as file:
    # 创建csv读取对象
    reader = csv.reader(file, quotechar='"')
    # 遍历每一行数据
    for row in reader:
        print(row)

在上面的例子中,我们使用quotechar='"'来指定双引号为转义字符。这样,包含双引号的数据就可以正确解析了。

总结

到此这篇关于Python中csv文件的写入与读取的文章就介绍到这了,更多相关Python csv文件写入与读取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python如何获取多线程返回结果

    Python如何获取多线程返回结果

    这篇文章主要介绍了Python如何获取多线程返回结果,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Keras搭建Mask R-CNN实例分割平台实现源码

    Keras搭建Mask R-CNN实例分割平台实现源码

    这篇文章主要为大家介绍了Keras搭建Mask R-CNN实例分割平台实现源码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • numpy matrix和array的乘和加实例

    numpy matrix和array的乘和加实例

    今天小编就为大家分享一篇numpy matrix和array的乘和加实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 女友半夜加班发自拍 python男友用30行代码发现惊天秘密

    女友半夜加班发自拍 python男友用30行代码发现惊天秘密

    大家好,我是Lex 喜欢欺负超人那个Lex 女友说今晚加班,还给我发了一张照片? 我心生怀疑,就用python分析了一下照片,结果发现。。。 划重点:利用Python读取照片的GPS信息信息
    2021-08-08
  • Python之requests的使用(二)

    Python之requests的使用(二)

    上一篇我们说了requests的简单用法,知道了如何发送请求,今天我们更深层次的来学习requests。我们看看高级一点的操作,比如讲文件上传,cookies设置,代理设置之类的。感兴趣的同学可以参考阅读
    2023-04-04
  • Python 在局部变量域中执行代码

    Python 在局部变量域中执行代码

    这篇文章主要介绍了Python 如何在局部变量域中执行代码,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
    2020-08-08
  • Python实现免费音乐下载器

    Python实现免费音乐下载器

    本文主要为大家介绍了通过Python实现的免费音乐下载器,文中的示例代码讲解详细,对我们的学习或工作有一定的帮助,需要的小伙伴可以学习一下
    2021-12-12
  • 使用Python paramiko模块利用多线程实现ssh并发执行操作

    使用Python paramiko模块利用多线程实现ssh并发执行操作

    ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。这篇文章主要介绍了使用Python paramiko模块利用多线程实现ssh并发执行操作,需要的朋友可以参考下
    2019-12-12
  • python结合shell自动创建kafka的连接器实战教程

    python结合shell自动创建kafka的连接器实战教程

    这篇文章主要介绍了python结合shell自动创建kafka的连接器,需要安装连接oracle的python包,获取oracle表信息,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 找不到Anaconda prompt终端的原因分析及解决方案

    找不到Anaconda prompt终端的原因分析及解决方案

    因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜单部分的初始化,故找不到,这篇文章主要介绍了找不到Anaconda prompt终端的原因分析及解决方案,需要的朋友可以参考下
    2025-03-03

最新评论