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

Mengapa Pulangan Pengangkutan Tambahan Ditambah pada Fail CSV Saya pada Windows?

Barbara Streisand
Barbara Streisandasal
2024-11-28 09:02:10540semak imbas

Why Are Extra Carriage Returns Added to My CSV Files on Windows?

Extra Carriage Returns dalam Fail CSV pada Windows: Memahami Punca

Dalam kod Python yang menulis fail CSV, anda mungkin menghadapi masalah apabila setiap baris dilampirkan dengan pemulangan pengangkutan tambahan ("r") pada sistem Windows. Tingkah laku yang tidak dijangka ini boleh menjadikan fail CSV yang dijana tidak serasi dengan sesetengah aplikasi atau sistem.

Untuk memahami sebab ini berlaku, mari analisa coretan kod yang disediakan:

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'])

Dalam Python 3, lalai tingkah laku untuk penulisan CSV ialah menggunakan terjemahan baris baharu universal. Ini bermakna bahawa pada Windows, penamat talian "rn" ditukar secara automatik kepada satu "n". Walau bagaimanapun, apabila membuka fail dengan mod "w", terjemahan ini dilumpuhkan. Akibatnya, penulis menambahkan "rn" selepas setiap baris.

Untuk melumpuhkan terjemahan baris baharu universal, gunakan parameter newline='' apabila membuka fail:

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

Dalam Python 2 , mod binari ("rb" atau "wb") mesti digunakan semasa membuka fail untuk membaca atau menulis CSV pada Windows:

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

Dengan membuka fail dalam mod binari, penukaran baris baharu dielakkan, memastikan bahawa "rn" ditulis pada fail seperti yang dimaksudkan.

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