Python - borrar caracteres de un archivo CSV

   
Vista:

borrar caracteres de un archivo CSV

Publicado por gh2016 (3 intervenciones) el 12/05/2016 21:45:57
Hola estoy tratando de remplazar caracteres de un csv muy grande y me da un error EOL WHILE SCANNING STRING LITERAL

quiero borrar los caracteres "\ " que están dentro del archivo el codigo es el siguiente:


1
2
3
4
5
6
import csv
 
with open('C:\\.. .csv', 'rb') as csvfile:
    archivo = csv.reader(csvfile, delimiter=';', quotechar="'")
    for row in archivo:
        archivo.replace["\","'"]

gracias por cualquier ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

borrar caracteres de un archivo CSV

Publicado por xve (1229 intervenciones) el 13/05/2016 07:43:35
Nos puedes mostrar parte del archivo csv para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar caracteres de un archivo CSV

Publicado por gh2016 (3 intervenciones) el 13/05/2016 14:23:27
gracias nuevamente, vendría a ser algo así:

J;280114;;;;;SANGSUM;GALAXI;SMARTHPHONE;;2016;C;NULL;; BS AS..;;;1234;;52115
J;2566655;;;;;KIOCERA;BRIGA; ;;2015;C;NULL;;SANTA FE;;;2420;;52001
J;2566655;;;;;KIOCERA;BRIGA; ;;2015;C;NULL;;SANTA FE;;;2420;;52001
J;545555;;;;;SAMSUN;SIN DATOS;SMARTHPHONE;;2015;D;NULL;; BS AS;;;1300;;2585
J;1233222;;;;;APLE;6;TABLET;;2014;D;NULL;;;;;1280;;22241
J;12222;;;;;SIN DATOS;;CAMARA;;2016;D;NULL;; BS AS .;;;16210;;221

quiero borrar caracteres como "\", "<" y ">" que me generan problemas al importarlo en postgresql

la base es de 5 millones de filas o mas no se si es el método adecuado para trabajar con este tipo de archivos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar caracteres de un archivo CSV

Publicado por xve (1229 intervenciones) el 13/05/2016 15:28:49
jajajajaja, pero en este código no hay ninguno de esos caracteres...;)

haber, varias cosas...

El replace es una función, por lo que los valores van entre parentesis.

Segun tu código, row es una lista con todos los valores de cada fila separados por el delimitador... por ejemplo, un row puede ser algo como:
1
['J', '2566655', '', '', '', '', 'KIOCERA', 'BRIGA', ' ', '', '2015', 'C', 'NULL', '', 'SANTA FE', '', '', '2420', '', '52001']

Si lo que quieres es pasar por cada valor, tendrias que hacer algo como...
1
2
3
4
5
6
7
8
import csv
 
with open('archivo.csv', 'rb') as csvfile:
	archivo = csv.reader(csvfile, delimiter=';', quotechar="'")
	print archivo
	for row in archivo:
		for i in row:
			i.replace("/","'")
#print i

Aunque yo primeramente leería linea por linea como un archivo normal, haría el reemplazo en toda la fila, y posteriormente la separaría por el delimitador y la guardaría en la base de datos.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar caracteres de un archivo CSV

Publicado por gh2016 (3 intervenciones) el 13/05/2016 16:12:53
Muchisimas gracias xve :)

es verdad en el ejemplo no pase los caracteres "/", no son muchos serán 50 en el conjunto de 5 millones , pero me impiden la importación a postgresql

Ahora voy a probar el código y luego te cuento como me fue. Con respecto a tu preferencia, dices que lo lea con readline()?, disculapa si es un abuso tantas preguntas es que hace unos dias que estoy trabado con esto.

Gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

borrar caracteres de un archivo CSV

Publicado por xve (1229 intervenciones) el 13/05/2016 20:17:23
Me refiero que lo leas linea a linea como si fuera un archivo normal, no como un archivo csv... ya que podrás reemplazar los caracteres linea por linea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar