CSV 文件操作 - Python lib: csv
读取文件
使用 csv.reader(fp.readlines())
读取文件, 其的一个参数应当为 Iter[str]
(与 fp.readlines()
返回值类型相同)
示例:
python
import csv
with open(<filename>, 'r', encoding='u8') as fp: # 读取文件 (以 utf-8 编码)
reader = csv.reader(fp.readlines()) # 创建 reader 对象, 可以迭代
for line in reader: # 便利 csv 文件内容
line: list[str] # [<字段1>, <字段2>, ...]
写入文件
使用 csv.writer(fp)
写入 csv 文件
- 使用
writer
(csv.writer
返回值) 的writerow(Iter[Any])
写入内容
示例:
python
with open(<filename>, 'w', encoding='u8') as fp: # 打开文件
writer = csv.writer(fp) # 创建 writer 对象
writer.writerow(['1', '2', '3']) # 写入第一行
- 使用
writer
(csv.writer
返回值) 的writerows(Iter[Iter[Any]])
写入多行内容
(使用列表)
示例:
python
with open(<filename>, 'w', encoding='u8') as fp: # 打开文件
writer = csv.writer(fp) # 创建 writer 对象
writer.writerows( # 写入第 1-3 行
[
['line1', '1', '2', '3'],
['line2', '4', '5', '6'],
['line3', '7', '8', '9'],
]
)
写入文件 (字典)
使用 csv.DictWriter(fp, <字段名称(Collection[str])>)
写入 csv 文件
- 使用
writer
(csv.DictWriter
返回值) 的writerows(Iter[Mapping[Any, Any]])
写入多行内容
(使用字典)
示例:
python
data = [
{
'1': 2,
'3': 4
}
]
with file.open('w+', encoding='u8') as fp: # 打开文件
writer = csv.DictWriter(fp, ['1', '3']) # 创建 writer 并定义字段名称
writer.writeheader() # 写入头部首行 (字段名称)
writer.writerows(data) # 写入各行数据, 如果出现了在 字段 中未定义的 key, 则爆出 `ValueError`