¿Cómo puedo convertir un archivo .csv en un archivo .dbf utilizando una secuencia de comandos python? Encontré este piece de código en línea, pero no estoy seguro de qué tan confiable es. ¿Hay algún módulo por ahí que tenga esta funcionalidad?¿Convertir el archivo .csv en .dbf usando Python?
Respuesta
No encontrará nada en la red que lea un archivo CSV y escriba un archivo DBF para que pueda invocarlo y suministrar 2 rutas de archivos. Para cada campo DBF, debe especificar el tipo, tamaño y (si corresponde) el número de decimales.
Algunas preguntas:
¿Qué software se va a consumir el archivo DBF de salida?
No existe el formato de archivo "DBF" (el único). ¿Necesitas dBase III? dBase 4? 7? Visual FoxPro? etc?
¿Cuál es la longitud máxima de campo de texto que debe escribir? ¿Tienes texto que no sea ASCII?
¿Qué versión de Python?
Si sus requisitos son mínimos (formato dBase III, texto no ASCII, texto < = 254 bytes de longitud, Python 2.X), la receta de libro de cocina que citó debería hacer el trabajo.
Sí, entiendo un poco mejor cómo .csv se puede convertir a dbf ahora. El software para el que lo estoy usando es ArcGIS, pero no puedo encontrar la especificación del formato .dbf que se usa. No hay texto que no sea ASCII, la versión de Python es 2.6 y la longitud máxima del campo de texto es de 20 caracteres. – djq
Utilice csv
library para leer sus datos del archivo csv. La biblioteca de terceros dbf
puede escribir un archivo dbf para usted.
Editar: Originalmente, enumeré dbfpy
, pero la biblioteca de arriba parece estar más activamente actualizada.
Parece una biblioteca funcional, si no muy pitonica. Definitivamente estoy agregando eso a mis marcadores --- ¡gracias por el enlace! –
El mayor inconveniente parece ser una documentación terrible, que es un problema con muchos proyectos de código abierto. – syrion
Lamentablemente, la documentación para dbf es tan limitada que ni siquiera puedo descubrir cómo usarla. Hay algunas líneas de código de ejemplo (que lo hacen parecer bastante fácil), pero no funcionan. Sin embargo, gracias por la respuesta! – djq
Ninguno que esté bien pulido, que yo sepa. He tenido que trabajar con archivos xBase muchas veces a lo largo de los años, y sigo encontrándome escribiendo código para hacerlo cuando tengo que hacerlo. Tengo, en alguna parte de una de mis copias de seguridad, una biblioteca bastante funcional y pura de Python para hacerlo, pero no sé exactamente dónde está eso.
Afortunadamente, el formato de archivo xBase no es tan complejo. Puede encontrar la especificación on the Internet, por supuesto. De un vistazo, el módulo con el que se ha vinculado se ve bien, pero por supuesto hace copias de cualquier dato con el que esté trabajando antes de usarlo.
Una biblioteca sólida, de lectura/escritura, totalmente funcional xBase con todas las características es algo que ha estado en mi lista de cosas por hacer por un tiempo ... Incluso podría llegar a esto en lo que queda este año, si Tengo suerte ... (probablemente no, lamentablemente).
Utilizando el dbf package puede obtener un archivo csv básica con un código similar a este:
import dbf
some_table = dbf.from_csv(csvfile='/path/to/file.csv', to_disk=True)
Esto creará tabla con el mismo nombre y ninguno de los personajes o nota de campos y nombres de campo de f0, f1, f2 , etc.
Para un nombre de archivo diferente, utilice el parámetro filename
, y si conoce los nombres de los campos, también puede usar el parámetro field_names
.
some_table = dbf.from_csv(csvfile='data.csv', filename='mytable',
field_names='name age birth'.split())
Bastante documentación básica está disponible here.
Divulgación: soy el autor de este paquete.
funcionó bien para mí. Solo una nota: la csv no debe tener un encabezado en su ejemplo, de lo contrario, el encabezado se analiza como una fila normal. – grasshopper
Estoy un poco confundido: estoy viendo dbf 0.96.005, pero no puedo determinar de manera decisiva si la lectura y escritura de archivos DBase IV son compatibles o no. Estoy usando dbfpy ahora, pero estoy ansioso por finalmente alejarme de Python 2 ... – parvus
dBase IV aún no es compatible. –
He creado un script de python aquí. Debe ser personalizable para cualquier diseño de csv. Necesita conocer su estructura de datos DBF antes de que esto sea posible. Este script requiere dos archivos csv, uno para la configuración del encabezado DBF y otro para los datos de su cuerpo. buena suerte.
Tu ejemplo usa dbfpy, que desafortunadamente no parece mantenerse y no está actualizado para usarse en Python3 - usa CStringIO, ao Pero si uno está bien con Python 2, este ejemplo debería proporcionar un comienzo de salto. – parvus
- 1. Python - convertir el archivo csv a JSON
- 2. Convertir el archivo xlsx a csv usando el lote
- 3. Convertir archivo CSV a XML
- 4. Obtener datos en un archivo .dbf usando C#
- 5. Convertir un archivo csv a json usando C#
- 6. Convertir archivo XML a CSV en java
- 7. Convertir archivo txt a csv en powershell
- 8. Exportación de Python Unicode CSV (usando Django)
- 9. Descargar el archivo CSV usando "AJAX"
- 10. Convertir archivo txt delimitado por tabuladores en un archivo csv utilizando Python
- 11. ¿Cómo convertir el archivo NSMutableArray a CSV en iPhone?
- 12. Cómo filtrar desde archivo CSV usando Python Script
- 13. Convertir CSV a ARFF usando weka
- 14. Convertir matriz en csv
- 15. Convertir archivo CHM a CSV o SQL
- 16. Python: Convertir Unicode en ASCII sin errores para el archivo CSV
- 17. Convertir CSV en XLS
- 18. Clasificar CSV en Python
- 19. python csv en el diccionario
- 20. Convertir archivo .db de base de datos en .csv
- 21. Convertir RDA a csv
- 22. ¿Cómo puedo convertir un archivo xml en JSON usando Python?
- 23. Convertir MDB a CSV
- 24. ¿Lectura de .csv en Python sin recorrer todo el archivo?
- 25. Guardar resultados en el archivo csv con Python
- 26. Crear archivo CSV usando PHP y guardarlo en el directorio
- 27. django descarga el archivo csv usando un enlace
- 28. Compruebe si el archivo tiene un formato CSV con Python
- 29. Importar archivo csv grande usando phpMyAdmin
- 30. Cómo leer un archivo CSV usando iOS
Google me habla de http://www.fiby.at/dbfpy/ y http://pypi.python.org/pypi/dbf/0.88.16. Sin embargo, el formato 'dbf' parece bastante simple; deberías poder verificar el código que publicaste tú mismo. – katrielalex