快速答案
本答案頁包含 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 道題。