csv的简单介绍

CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到csv这种格式的文件。python自带了csv模块,专门用于处理csv文件的读取

csv的写入

1通过创建writer对象,主要用到2个方法。一个是writerow,写入一行。另一个是writerows写入多行

2使用DictWriter 可以使用字典的方式把数据写入进去

第一种写入方法(通过创建writer对象)

先来说一下第一种写入的方法:通过创建writer对象写入(每次写入一行)

步骤:1.创建数据和表头2.创建writer对象3.写表头4.遍历列表,将每一行数据写入csv

代码如下:

import csv

person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8') as file_obj:
    # 1:创建writer对象
    writer = csv.writer(file_obj)
    # 2:写表头
    writer.writerow(header)
    # 3:遍历列表,将每一行的数据写入csv
    for p in person:
        writer.writerow(p)

写入完就会在当前目录下出现一个person.csv文件,鼠标右键点击show in Explorer打开person.csv查看

打开以后会发现写入的数据中间会换行

居然:那么应该怎么解决这个问题呢

hacker:很简单啊

只需要在写入数据的时候加上一个参数 newline=‘’为了防止换行写入

改正后的代码如下:

import csv

# 数据
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 创建对象
    writer = csv.writer(file_obj)
    # 写表头
    writer.writerow(header)
    # 遍历,将每一行的数据写入csv
    for p in person:
        writer.writerow(p)

通过创建writer对象(一次性写入多行)

步骤:1.创建数据和表头2.创建writer对象3.写表头4.在writerows里传入你要处理的数据

import csv

# 数据
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 创建对象
    writer = csv.writer(file_obj)
    # 写表头
    writer.writerow(header)
    # 3.写入数据(一次性写入多行)
    writer.writerows(person)

写入结果如下:

第二种写入方法(使用DictWriter可以使用字典的方式将数据写入)

注意事项:使用字典的方式写入要注意传递的数据格式必须是字典

如果不是字典的话会报错

AttributeError: ‘tuple’ object has no attribute ‘keys’

步骤1.创建数据和表头( 数据必须是字典格式)2.创建DictWriter对象3.写表头4.写入数据

import csv

# 数据
person = [
    {'name': 'xxx', 'age': 18, 'height': 193},
    {'name': 'yyy', 'age': 18, 'height': 182},
    {'name': 'zzz', 'age': 19, 'height': 185},
]
# 表头
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 1.创建DicetWriter对象
    dictWriter = csv.DictWriter(file_obj, header)
    # 2.写表头
    dictWriter.writeheader()
    # 3.写入数据(一次性写入多行)
    dictWriter.writerows(person)

csv的读取

通过reader()读取

import csv

with open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    reader = csv.reader(file_obj)
    print(reader)

如果直接打印会返回csv.reader对象,这时需要遍历列表

<_csv.reader object at 0x000001FB8CE655F8>

改正代码如下:

import csv

with open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    reader = csv.reader(file_obj)
    # 2.遍历进行读取数据
    for r in reader:
        print(r)

读取结果如下:

['name', 'age', 'height']
['xxx', '18', '193']
['yyy', '18', '182']
['zzz', '19', '185']

如果想打印列表的某一个值,可以使用索引打印

print(r[0])

name
xxx
yyy
zzz

通过dictreader()读取

import csv

with open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    dictReader = csv.DictReader(file_obj)
    # 2.遍历进行读取数据
    for r in dictReader:
        print(r)

返回结果如下:

OrderedDict([('name', 'xxx'), ('age', '18'), ('height', '193')])
OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])
OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])

这时我们如果要取到某一个值就需要指定键去寻找值

print(r['name'])

xxx
yyy
zzz

总结

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

python基础教程之csv文件的写入与读取的更多相关文章

  1. Python自动化办公之Excel数据的写入

    这篇文章主要为大家详细介绍一下Python中excel的写入模块- xlsxwriter,并利用该模块实现Excel数据的写入,感兴趣的小伙伴可以了解一下

  2. PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法

    这篇文章主要介绍了PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法,涉及php针对文件的读取及字符串遍历、统计、排序等相关操作技巧

  3. 教你用十行node.js代码读取docx的文本

    这篇文章主要给大家介绍了用十行node.js代码读取docx文本的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

  4. Python实现遍历读取文件或文件夹

    搞机器学习或者深度学习算法很多时候需要遍历某个目录读取文件,特别是经常需要读取某个特定后缀的文件。本文为大家准备了Python遍历读取文件或文件夹的示例代码,需要的可以参考一下

  5. 关于opencv读取和写入路径有汉字的处理方式

    这篇文章主要介绍了关于opencv读取和写入路径有汉字的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  6. 使用 JavaScript Promise 读取 Github 用户数据

    这篇文章主要介绍了使用JavaScript Promise读取Github用户数据,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

  7. html中select语句读取mysql表中内容

  8. 解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题

    本文主要介绍了解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  9. Python读取CSV文件并进行数据可视化绘图

    这篇文章主要介绍了Python读取CSV文件并进行数据可视化绘图,文章围绕主题基于Python展开CSV文件读取的详细内容介绍,感兴趣的小伙伴可以参考一下

  10. Python 读取 Word 文档操作

    这篇文章主要介绍了Python读取Word文档操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部