el siguiente código funcionó hasta hoy cuando importé desde una máquina con Windows y obtuve este error:
carácter de nueva línea visto en un campo sin comillas: ¿necesita abrir el archivo en modo universal de nueva línea?
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]
¿Cómo puedo solucionar este problema?
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)
Respuestas:
Será bueno ver el archivo csv en sí, pero esto podría funcionar para usted, pruébelo, reemplace:
con:
O abra un archivo con
universal newline mode
y páselo acsv.reader
, como:O use
splitlines()
, así:fuente
get_row_count()
y enget_column_count()
- considere leer el archivo en__init__
y recordardata
enself.data
, a continuación, utilizarlo en otros métodos.Me doy cuenta de que esta es una publicación antigua, pero encontré el mismo problema y no veo la respuesta correcta, así que lo intentaré
Error de Python:
Se produce al intentar leer archivos CSV de Macintosh (con formato anterior a OS X). Estos son archivos de texto que usan CR para el final de la línea. Si usa MS Office, asegúrese de seleccionar el formato CSV simple o CSV (MS-DOS) . No utilice CSV (Macintosh) como tipo de guardar como.
Mi versión EOL preferida sería LF (Unix / Linux / Apple), pero no creo que MS Office ofrezca la opción de guardar en este formato.
fuente
Para Mac OS X, guarde su archivo CSV en formato "Separado por comas de Windows (.csv)".
fuente
Si esto te sucede en mac (como me pasó a mí):
CSV (MS-DOS Comma-Separated)
Ejecute el siguiente script
fuente
Intente ejecutar
dos2unix
primero en sus archivos importados de Windowsfuente
\x0d
finales de línea (ProDOS) a finales de línea\x0a
(UNIX).Este es un error al que me enfrenté. Había guardado el archivo .csv en MAC OSX.
Mientras guarda, guárdelo como "Valores separados por comas de Windows (.csv)" que resolvió el problema.
fuente
Esto funcionó para mí en OSX.
fuente
Sé que esto ha sido respondido durante bastante tiempo, pero no resolvió mi problema. Estoy usando DictReader y StringIO para mi lectura de csv debido a otras complicaciones. Pude resolver el problema de manera más simple reemplazando los delimitadores explícitamente:
Puede que no sea razonable para archivos CSV enormes, pero funcionó bien para mi caso de uso.
fuente
Solución alternativa y rápida: me enfrenté al mismo error. Reabrí el archivo csv "extraño" en GNUMERIC en mi máquina lubuntu y exporté el archivo como archivo csv. Esto corrigió el problema.
fuente