在Python中,可以使用内置的`csv`模块来操作CSV文件,以下是基本的读取和写入方法:
读取CSV文件
import csv
打开CSV文件
with open('data.csv', 'r', encoding='utf-8') as f:
创建csv.reader对象
csv_reader = csv.reader(f)
读取文件内容
for row in csv_reader:
print(row)
写入CSV文件
import csv
数据准备
data = [
('Name', 'Age', 'City'),
('Alice', '30', 'New York'),
('Bob', '25', 'Los Angeles')
]
打开文件并创建csv.writer对象
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
csv_writer = csv.writer(f)
写入数据
csv_writer.writerows(data)
高级用法
使用`csv.DictReader`和`csv.DictWriter`
import csv
from collections import namedtuple
定义数据结构
Person = namedtuple('Person', ['Name', 'Age', 'City'])
读取CSV文件
with open('data.csv', 'r', encoding='utf-8') as f:
csv_reader = csv.DictReader(f)
for row in csv_reader:
person = Person(row)
print(person)
写入CSV文件
data = [
Person('Alice', '30', 'New York'),
Person('Bob', '25', 'Los Angeles')
]
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
fieldnames = ['Name', 'Age', 'City']
csv_writer = csv.DictWriter(f, fieldnames=fieldnames)
csv_writer.writeheader()
for row in data:
csv_writer.writerow(row._asdict())
自定义分隔符和引用符
import csv
使用自定义分隔符和引用符
with open('data.csv', 'r', encoding='utf-8', delimiter='|', quotechar='"') as f:
csv_reader = csv.reader(f)
for row in csv_reader:
print(row)
处理包含逗号、换行符的数据
import csv
写入包含逗号的数据
data = [
('Name, Age', 'New York, NY'),
('Bob', '25')
]
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
csv_writer = csv.writer(f)
for row in data:
csv_writer.writerow(row)
以上是使用Python操作CSV文件的基本方法。