Python——csv文件的写入与读取 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='"'来指定双引号为转义字符。这样,包含双引号的数据就可以正确解析了。

作者:初见~原文地址:https://blog.csdn.net/qq_48892708/article/details/129768533

%s 个评论

要回复文章请先登录注册