文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python——csv文件的写入与读取

2023-09-04 07:57

关注

CSV文件是一种常见的数据格式,它以逗号分隔不同的字段,每行表示一个数据记录。在Python中,我们可以使用csv模块来读取和写入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将数据前后加上双引号。

在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='"'来指定双引号为转义字符。这样,包含双引号的数据就可以正确解析了。

来源地址:https://blog.csdn.net/qq_48892708/article/details/129768533

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯