這些鏈接來自舊答案,似乎與Python 2有關。最值得注意的是: 我想不出在什么情況下打開二進制文件來讀取CSV是正確的;閱讀時完全省略“r”(依靠默認值),寫作時只使用“w”。 對于閱讀和寫作,csv文檔建議使用newline=""。這與您引用的第二個鏈接有關,但用二進制代碼編寫并不是避免line-ending問題的答案。 只需在with open(...上下文的主體中聲明輸入行列表,并使用list()函數將讀取器的迭代器具體化為一個列表。 I also: 為enumerate()添加了start=選項,以顯示如何控制輸入CSV中是否存在標頭。 重命名了一些vars,因為我認為它更容易閱讀。 使輸入/輸出文件不同,以遵循我自己的規則,永遠不要在代碼中覆蓋輸入;一旦您對結果感到滿意,請使用操作系統移動/重命名。 以下是如何在Python 3中使用此輸入進行操作: Col1,Col2,Col3a,b,cd,e,fg,h,i with open("input.csv", newline="") as f: reader = csv.reader(f) input_rows = list(reader)# Make these row indexes 1-based, so `1: [...]` means "first row"override_rows = { 1: ["A", "B