Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencegah Garis Kosong dalam Fail CSV Dijana Python Dibuka dalam Excel?

Bagaimanakah Saya Boleh Mencegah Garis Kosong dalam Fail CSV Dijana Python Dibuka dalam Excel?

Susan Sarandon
Lepaskan: 2024-12-30 01:18:10
asal
937 orang telah melayarinya

How Can I Prevent Blank Lines in Python-Generated CSV Files Opened in Excel?

Mengelakkan Garis Kosong dalam Fail CSV Ditulis dengan Python

Apabila menulis fail CSV dengan Python, baris kosong mungkin muncul di antara baris apabila fail yang terhasil dibuka dalam Microsoft Excel. Artikel ini membincangkan sebab isu ini berlaku dan menyediakan penyelesaian untuk menyekat baris kosong tambahan.

Punca Garis Kosong

Masalahnya terletak pada cara Python mengendalikan pengakhiran baris dalam fail CSV. Modul csv.writer mengawal penghujung baris secara langsung dan secara lalai ia menambahkan kedua-dua carriage return (r) dan baris baharu (n) pada fail, menghasilkan baris kosong tambahan dalam Excel.

Solutions for Windows

Untuk sistem Windows, fail Python mesti dibuka dalam mod teks yang tidak diterjemahkan menggunakan parameter newline=''. Parameter ini memberitahu Python untuk tidak menterjemah aksara baris baharu lalai (n) ke dalam jujukan baris baharu khusus Windows (rn).

Menggunakan pernyataan dengan:

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

Menggunakan modul Path:

from pathlib import Path

with Path('/pythonwork/thefile_subset11.csv').open('w', newline='') as outfile:
    writer = csv.writer(outfile)
Salin selepas log masuk

Penyelesaian untuk Python 2 (Windows dan Bukan Windows)

Untuk Python 2, gunakan mod binari untuk membuka fail output ('wb'), kerana ia menghalang Python daripada menterjemah pengakhiran baris.

with open('/pythonwork/thefile_subset11.csv', 'wb') as outfile:
    writer = csv.writer(outfile)
Salin selepas log masuk

Tambahan Nota

  • Jika menulis data ke penimbal dalam memori menggunakan StringIO, rentetan yang terhasil akan mengandungi jujukan baris baharu yang diterjemahkan (cth., 'rn' pada Windows). Untuk mengelakkan ini, gunakan newline='' semasa menulis penimbal pada fail.
  • Dalam Python 2, pengendalian aksara Unicode dalam fail CSV memerlukan penyelesaian tambahan disebabkan isu berkaitan Unikod. Pertimbangkan untuk menggunakan modul unicodecsv pihak ketiga untuk tujuan ini.

Dokumentasi Pautan

  • https://docs.python.org/3/library/csv.html#csv.writer
  • https://docs.python.org/2/library /csv.html#csv.writer

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Garis Kosong dalam Fail CSV Dijana Python Dibuka dalam Excel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan