Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Output CSV Python Saya Mempunyai Pulangan Pengangkutan Tambahan pada Windows?

Mengapa Output CSV Python Saya Mempunyai Pulangan Pengangkutan Tambahan pada Windows?

Patricia Arquette
Lepaskan: 2024-12-03 19:30:13
asal
481 orang telah melayarinya

Why Does My Python CSV Output Have Extra Carriage Returns on Windows?

Fail Output CSV Isu Pemulangan Carriage Tambahan pada Windows dalam Python

Apabila menjana fail CSV dalam Python, ada kemungkinan untuk menambah gerabak tambahan secara tidak sengaja kembali pada akhir setiap baris. Tingkah laku ini boleh diperhatikan dalam kod berikut:

import csv

with open('test.csv', 'w') as outfile:
    writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(['hi', 'dude'])
    writer.writerow(['hi2', 'dude2'])
Salin selepas log masuk

Output Jangkaan:

hi,dude
hi2,dude2
Salin selepas log masuk

Output Sebenar (Windows):

hi,dude\r\r\nhi2,dude2\r\r\n
Salin selepas log masuk

Punca dan Resolusi untuk Python 3:

Dalam Python 3, isu ini timbul kerana daripada ciri terjemahan baris baharu universal lalai. Untuk menyelesaikannya, buka fail dengan newline='' untuk melumpuhkan terjemahan ini:

with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    ...
Salin selepas log masuk

Punca dan Penyelesaian untuk Python 2:

Pada Windows dalam Python 2 , isu ini berlaku kerana CSV dianggap sebagai format binari, dan rn ialah pemisah rekod. Jika fail dibuka dalam mod teks, Python menggantikan n dengan rn, menghasilkan pulangan dua gerabak. Penyelesaiannya adalah dengan sentiasa membuka fail dalam mod binari:

with open('test.csv', 'wb') as outfile:
    writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
    ...
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Output CSV Python Saya Mempunyai Pulangan Pengangkutan Tambahan pada Windows?. 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