kode berikut berfungsi hingga hari ini ketika saya mengimpor dari mesin Windows dan mendapatkan kesalahan ini:
karakter baris baru terlihat di bidang tanpa tanda kutip - apakah Anda perlu membuka file dalam mode baris baru universal?
import csv
class CSV:
def __init__(self, file=None):
self.file = file
def read_file(self):
data = []
file_read = csv.reader(self.file)
for row in file_read:
data.append(row)
return data
def get_row_count(self):
return len(self.read_file())
def get_column_count(self):
new_data = self.read_file()
return len(new_data[0])
def get_data(self, rows=1):
data = self.read_file()
return data[:rows]
Bagaimana cara memperbaiki masalah ini?
def upload_configurator(request, id=None):
"""
A view that allows the user to configurator the uploaded CSV.
"""
upload = Upload.objects.get(id=id)
csvobject = CSV(upload.filepath)
upload.num_records = csvobject.get_row_count()
upload.num_columns = csvobject.get_column_count()
upload.save()
form = ConfiguratorForm()
row_count = csvobject.get_row_count()
colum_count = csvobject.get_column_count()
first_row = csvobject.get_data(rows=1)
first_two_rows = csvobject.get_data(rows=5)
Jawaban:
Sebaiknya Anda melihat file csv itu sendiri, tetapi ini mungkin berhasil untuk Anda, cobalah, ganti:
dengan:
Atau, buka file dengan
universal newline mode
dan berikan kecsv.reader
, seperti:Atau, gunakan
splitlines()
, seperti ini:sumber
get_row_count()
dan diget_column_count()
- mempertimbangkan membaca file dalam__init__
dan ingatdata
diself.data
, kemudian menggunakannya dalam metode lain.Saya menyadari ini adalah posting lama, tetapi saya mengalami masalah yang sama dan tidak melihat jawaban yang benar jadi saya akan mencobanya
Kesalahan Python:
Disebabkan oleh mencoba membaca file CSV Macintosh (pra OS X diformat). Ini adalah file teks yang menggunakan CR untuk akhir baris. Jika menggunakan MS Office pastikan Anda memilih format CSV biasa atau CSV (MS-DOS) . Jangan gunakan CSV (Macintosh) sebagai tipe simpan-sebagai.
Versi EOL pilihan saya adalah LF (Unix / Linux / Apple), tetapi menurut saya MS Office tidak menyediakan opsi untuk menyimpan dalam format ini.
sumber
Untuk Mac OS X, simpan file CSV Anda dalam format "Windows Comma Separated (.csv)".
sumber
Jika ini terjadi pada Anda di mac (seperti yang terjadi pada saya):
CSV (MS-DOS Comma-Separated)
Jalankan script berikut
sumber
Coba jalankan
dos2unix
di windows Anda file yang diimpor terlebih dahulusumber
\x0d
akhir baris (ProDOS) ke akhir baris\x0a
(UNIX).Ini adalah kesalahan yang saya hadapi. Saya telah menyimpan file .csv di MAC OSX.
Saat menyimpan, simpan sebagai "Nilai Dipisahkan Koma Windows (.csv)" yang menyelesaikan masalah.
sumber
Ini berhasil untuk saya di OSX.
sumber
Saya tahu ini telah dijawab cukup lama tetapi tidak menyelesaikan masalah saya. Saya menggunakan DictReader dan StringIO untuk membaca csv saya karena beberapa komplikasi lain. Saya dapat menyelesaikan masalah lebih sederhana dengan mengganti pembatas secara eksplisit:
Mungkin tidak masuk akal untuk file CSV yang sangat besar, tetapi berfungsi dengan baik untuk kasus penggunaan saya.
sumber
Solusi alternatif dan cepat: Saya menghadapi kesalahan yang sama. Saya membuka kembali file csv "wierd" di GNUMERIC di mesin lubuntu saya dan mengekspor file tersebut sebagai file csv. Ini memperbaiki masalah.
sumber