python内置csv模块读写csv文件

CSV文件,是一种常用的文本格式,因为其格式简单、兼容性好,被广泛使用,特别是用于程序之间转换数据。
python也内置了csv模块,用来读写csv文件。

一、csv模块写入数据
语法:writer(csvfile, dialect=‘excel’,**fmtparams)
csvfile:文件对象
dialect:编码风格,默认为是excel,也就是用逗号(,)分隔,一般不去更改它。
**fmtparams:dialect格式参数,有delimter(分隔符,默认为逗号)
实例1:最简单的不加任何参数,直接写入一行数据–writerrow()

import csv
# 要写入的数据
data = ['wdewd', '2343243', 'python内置csv模块学习']
with open('test.csv', 'w') as f:
    mywrite = csv.writer(f)  # 返回一个writer对象
    mywrite.writerow(data)  # 一行一行的写入数据

结果如下:
在这里插入图片描述注:open()函数打开当前路径下的文件名为test.csv的文件,如果当前路径下没有名为test.csv的文件,则会创建它。

实例2:一次写入多行数据—writerows()

import csv

# 创建一个二维列表,作为要写入的数据
data_list = []
for i in range(3):
    data = [i, 'wdewd', '2343243', 'python内置csv模块学习']
    data_list.append(data)
with open('test.csv', 'w') as f:
    mywrite = csv.writer(f)  # 返回一个writer对象
    mywrite.writerows(data_list)  # 一次写入多行数据

结果如下:
在这里插入图片描述
常见问题:在写入多行数据时,出现每一条数据都有一个空行
解决办法:在open()函数打开文件时,加一个newline=’’参数即可。
更改后代码:

import csv

# 创建一个二维列表,作为要写入的数据
data_list = []
for i in range(3):
    data = [i, 'wdewd', '2343243', 'python内置csv模块学习']
    data_list.append(data)
with open('test.csv', 'w', newline='') as f:
    mywrite = csv.writer(f)  # 返回一个writer对象
    mywrite.writerows(data_list)  # 一次写入多行数据

结果如下:
在这里插入图片描述
二、csv模块读取数据
语法:reader(csvfile, dialect=‘excel’, **fmtparams),参数含义同上。
实例1:读取刚刚写入的csv文件

import csv

with open('test.csv', 'r') as f:
    res = csv.reader(f)
    print('返回一个对象:', res)
    print('转换为列表格式:', list(res))

结果如下:
在这里插入图片描述
常见使用问题:

with open('test.csv', 'rb') as f:
    res = csv.reader(f)
    print('返回一个对象:', res)
    print('转换为列表格式:', list(res))

在这里插入图片描述
**错误原因:**使用了“b”二进制文件打开模式,csv文件是文本文件,不是二进制文件。
**解决办法:**使用“r”(默认是t)或者“rt”文件打开模式

常见文件打开模式:

打开模式描述
r以只读模式打开文件,并将文件指针指向文件头;如果文件不存在会报错
w以只写模式打开文件,并将文件指针指向文件头;如果文件存在则将其内容清空,如果文件不存在则创建。
a以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建。
r+在r的基础上增加了可写功能
w+在w的基础上增加了可读功能
a+在a的基础上增加了可读功能
b读写二进制文件(默认是t,表示文本),需要与上面几种模式搭配使用,如ab,wb, ab, ab+
使用Pythoncsv模块可以很方便地读取CSV文件。首先,你需要确保你已经关闭了正在使用的CSV文件。然后,你可以按照以下步骤来读取CSV文件: 1. 首先,导入csv模块:`import csv` 2. 打开CSV文件并创建一个文件对象:`file = open('filename.csv', 'r')` 3. 通过csv模块的reader函数创建一个reader对象:`reader = csv.reader(file)` 4. 使用for循环遍历reader对象,逐行读取CSV文件的内容:`for row in reader:` 5. 在循环中,可以通过索引访问每一列的值,例如`row`代表第一列的值。 下面是一个示例代码,演示了如何使用csv模块读取CSV文件: ``` import csv # 打开CSV文件并创建一个文件对象 file = open('filename.csv', 'r') # 通过csv模块的reader函数创建一个reader对象 reader = csv.reader(file) # 使用for循环遍历reader对象,逐行读取CSV文件的内容 for row in reader: # 在循环中,可以通过索引访问每一列的值 print(row<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用python自带CSV模块读写csv文件](https://blog.csdn.net/qq_42215863/article/details/124358808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位代码

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值