Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Pulangan Pengangkutan Tambahan Ditambah pada Fail CSV Saya pada Windows?
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!