在Python 中編寫CSV 檔案時,在Microsoft Excel 中遇到分隔每一行的空白行可能會令人沮喪。此問題的出現是由於 csv.writer 處理行結尾的方式。
在 Python 3 中,以文字模式 ('w') 開啟輸出檔案將導致 Windows 將每個換行符 ('n') 轉換為回車符和換行符('rn')。為了防止這種情況,應該使用參數newline=''(空字串)以未翻譯文字模式開啟檔案:
with open('thefile_subset11.csv', 'w', newline='') as outfile: writer = csv.writer(outfile)
或者,使用Path 模組的open()方法也允許指定換行參數:
from pathlib import Path with Path('thefile_subset11.csv').open('w', newline='') as outfile: writer = csv.writer(outfile)
在Python 2中,解決方案是開啟輸出檔案二進位模式('wb')而不是文字模式('w'):
with open('thefile_subset11.csv', 'wb') as outfile: writer = csv.writer(outfile)
對於使用StringIO 的記憶體中操作,產生的字串將包含Windows 特定行終止符('rn')。將此字串寫入檔案時,請記住使用 newline='':
from io import StringIO s = StringIO() writer = csv.writer(s) writer.writerow([1, 2, 3]) with open('thefile_subset11.csv', 'w', newline='') as f: f.write(s.getvalue())
以上是如何防止 Python CSV 輸出到 Excel 中出現空白行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!