快速答案
本答案页包含 Python CSV 文件 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。
答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。
csv.DictReader 会把每一行返回成什么?
答案: 以表头为键的字典
为什么: 第一行提供字段名,之后每一行变成映射。
writer.writerow 会做什么?
答案: 写入一行并添加行结束符
为什么: 每次调用向输出流写入一条记录。
quoting=csv.QUOTE_ALL 会做什么?
答案: 给每个字段加引号
为什么: QUOTE_ALL 会给每个字段加引号,即使字段里没有分隔符。
这段程序打印出什么?
import csv
from io import StringIO
rows = list(csv.reader(StringIO("a,b\n1,2\n")))
print(rows[1][1])答案: 2
为什么: 第二行是 ['1', '2'],下标 1 是字符串 2。
补全模块导入。
import ____
from io import StringIO答案: csv
为什么: csv 模块提供读取器和写入器。
补全使用表头名称的读取器。
import csv
from io import StringIO
rows = list(csv.____(StringIO("name,score\nAda,92\n")))答案: DictReader
为什么: DictReader 把每一行映射成字典。
补全写入一行的方法。
import csv
from io import StringIO
buffer = StringIO()
writer = csv.writer(buffer)
writer.____(["a", "b"])答案: writerow
为什么: writerow 写入一条记录。
补全给所有字段加引号的模式。
import csv
from io import StringIO
buffer = StringIO()
writer = csv.writer(buffer, quoting=csv.____)答案: QUOTE_ALL
为什么: QUOTE_ALL 是全字段加引号的常量。
代码的输出结果是什么?
import csv
from io import StringIO
print(next(csv.reader(StringIO("a,b\n1,2\n"))))答案: ['a', 'b']
为什么: 第一行是两个表头字符串组成的列表。
屏幕上会显示什么?
import csv
from io import StringIO
rows = list(csv.DictReader(StringIO("name,score\nAda,92\n")))
print(rows[0]["score"])答案: 92
为什么: Ada 的 score 字段是字符串 92。
这段代码会输出什么?
import csv
from io import StringIO
buffer = StringIO()
writer = csv.writer(buffer, quoting=csv.QUOTE_ALL)
writer.writerow(["a,b", "c"])
print(buffer.getvalue().strip())答案: "a,b","c"
为什么: QUOTE_ALL 给两个字段都加引号,包括含逗号的那个。
运行结果是什么?
import csv
from io import StringIO
buffer = StringIO()
writer = csv.writer(buffer)
writer.writerow(["a", "b"])
print(buffer.getvalue().strip())答案: a,b
为什么: writerow 用逗号分隔写入两个字段。
先试一遍题目
打开 Python CSV 文件 练习页,用即时反馈回答同样的 12 道题。