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.reader
的quotechar
参数来指定转义字符。例如:
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