¿Podría alguien proporcionar una forma efectiva de verificar si un archivo tiene formato CSV usando Python?Compruebe si el archivo tiene un formato CSV con Python
Respuesta
Python tiene un csv module, por lo que puede intentar analizarlo en una variedad de dialectos diferentes.
Debe pensar claramente en lo que considera que es un archivo CSV.
Por ejemplo, qué tipo de caracteres pueden ocurrir entre las comas. ¿Es texto solo? ¿Pueden ser caracteres Unicode también? ¿Debería cada línea tener el mismo número de comas?
No tengo una definición estricta de un archivo CSV del que sea consciente. Por lo general, es texto ASCII separado por comas y cada línea tiene el mismo número de comas y termina con el terminador de línea de la plataforma.
De todos modos, una vez que responda las preguntas anteriores, estará un poco más lejos en su camino para saber cómo detectar cuándo un archivo es un archivo CSV.
Puede intentar algo como lo siguiente, pero solo porque obtiene un dialecto de csv.Sniffer
realmente no será suficiente para garantizar que tenga un documento CSV válido.
csv_fileh = open(somefile, 'rb')
try:
dialect = csv.Sniffer().sniff(csv_fileh.read(1024))
# Perform various checks on the dialect (e.g., lineseparator,
# delimiter) to make sure it's sane
# Don't forget to reset the read position back to the start of
# the file before reading any entries.
csv_fileh.seek(0)
except csv.Error:
# File appears not to be in CSV format; move along
* "... no será suficiente para garantizar ..." *: Sí. Sin proporcionar un dialecto, el mío detectó un .ZIP como un CSV válido, con @ como separador – alanjds
Intente analizarlo como CSV y vea si obtiene un error.
- 1. Compruebe si la propiedad tiene el atributo
- 2. Compruebe si una función tiene un decorador
- 3. jQuery: compruebe si un objeto tiene clase
- 4. Compruebe si una clase tiene un método
- 5. Compruebe si un formulario tiene una clave?
- 6. Compruebe si un archivo PDF es válido (Python)
- 7. Compruebe si el cursor tiene resultados
- 8. Cómo codificar un hipervínculo en un archivo con formato CSV?
- 9. compruebe si un archivo es ejecutable
- 10. compruebe si un archivo está abierto en Python
- 11. generar/abrir CSV desde la consola: el archivo tiene un error de formato incorrecto
- 12. Python: compruebe si un archivo está vacío o no
- 13. Python: compruebe si el archivo cargado es jpg
- 14. Compruebe si el nodo Xml tiene un atributo
- 15. Compruebe si el archivo es un conducto con nombre (fifo) en python?
- 16. Compruebe si se escanea un archivo PDF
- 17. Compruebe si una URL tiene http: // prefijo
- 18. Compruebe si el archivo ya está abierto
- 19. C compruebe si el archivo existe
- 20. Compruebe si un archivo está abierto
- 21. Compruebe si existe un directorio en un archivo zip con Python
- 22. jQuery: compruebe si el elemento tiene el atributo CSS
- 23. compruebe si el archivo es de un tipo determinado
- 24. Compruebe si el archivo existe en ksh
- 25. compruebe si el archivo existe en php
- 26. Compruebe si existe un archivo en el servidor
- 27. Compruebe si la clase tiene el método estático
- 28. Python - convertir el archivo csv a JSON
- 29. Compruebe si el elemento cliqueado no tiene una clase específica
- 30. Guardar resultados en el archivo csv con Python
Bienvenido a stackoverflow. Su pregunta podría usar más detalles. Como punto de partida, ¿podría definir lo que quiere decir con "formato csv"? Deberá definir cuidadosamente este formato. ¿Existen caracteres de escape, marcadores de comentarios o caracteres de comillas en este formato? Si esta pregunta es tarea, por favor agregue una etiqueta llamada "tarea" para que las respuestas puedan darle el tipo correcto de orientación. –
Quiero decir en el archivo CSV archivo de valores separados por comas vea http://en.wikipedia.org/wiki/Comma-separated_values para más detalles. – Joe
Si se entiende por 'valores separados por comas' por csv, entonces no hay una norma de ese formato. – Max