Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencegah Garis Kosong dalam Fail CSV Ditulis dengan Python?

Bagaimana untuk Mencegah Garis Kosong dalam Fail CSV Ditulis dengan Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-31 10:48:10358semak imbas

How to Prevent Blank Lines in CSV Files Written with Python?

Fail CSV Ditulis dengan Python: Menyelesaikan Garis Kosong Antara Baris

Isu ini berpunca daripada cara modul csv.writer Python mengendalikan pengakhiran baris. Apabila beroperasi dalam mod teks terjemahan (tetapan lalai), ia menulis kedua-dua carriage return (r) dan baris baharu (n) ke dalam fail untuk setiap baris. Ini boleh menyebabkan baris kosong tambahan apabila dilihat dalam Microsoft Excel pada Windows.

Penyelesaian:

Untuk mengelakkan baris kosong ini, adalah penting untuk membuka fail output dalam yang tidak diterjemahkan mod teks. Dalam Python 3, gunakan sintaks berikut:

with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)

Rentetan kosong ('') sebagai nilai untuk parameter baris baharu memastikan tiada aksara penamatan baris ditambahkan, sekali gus menyelesaikan isu baris kosong.

Nota Tambahan:

  • Jika menggunakan modul Path, anda boleh menulis ke fail dalam mod teks yang tidak diterjemahkan seperti berikut:
from pathlib import Path

with Path('/pythonwork/thefile_subset11.csv').open('w', newline='') as outfile:
    writer = csv.writer(outfile)
  • Untuk output rentetan dalam memori, gunakan StringIO:
from io import StringIO

s = StringIO()
writer = csv.writer(s)
writer.writerow([1,2,3])

Perhatikan bahawa rentetan yang terhasil masih akan mengandungi penamat baris Windows rn. Untuk mengelakkan ini, gunakan parameter newline='' apabila menulis rentetan pada fail.

  • Dalam Python 2, buka fail output dalam mod binari ('wb') dan bukannya mod teks (' w'). Ini akan menghalang terjemahan penamatan baris.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Garis Kosong dalam Fail CSV Ditulis dengan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn