Конвертировать .csv файл в .dbf, используя Python? - PullRequest
11 голосов
/ 14 декабря 2010

Как я могу преобразовать файл .csv в файл .dbf, используя скрипт на python?Я нашел этот кусок кода в Интернете, но я не уверен, насколько он надежен.Есть ли какие-нибудь модули с такой функциональностью?

Ответы [ 5 ]

8 голосов
/ 13 июля 2011

Используя пакет dbf , вы можете получить базовый CSV-файл с кодом, подобным следующему:

import dbf
some_table = dbf.from_csv(csvfile='/path/to/file.csv', to_disk=True)

Это создаст таблицу с тем же именем, а также поля символов или Memo иимена полей f0, f1, f2 и т. д.

Для другого имени файла используйте параметр filename, а если вы знаете имена полей, вы также можете использовать параметр field_names.

some_table = dbf.from_csv(csvfile='data.csv', filename='mytable',
        field_names='name age birth'.split())

Довольно базовая документация доступна здесь .

Раскрытие информации: я являюсь автором этого пакета.

6 голосов
/ 16 декабря 2010

В сети вы не найдете ничего, что читает CSV-файл и записывает DBF-файл, так что вы можете просто вызвать его и указать 2 пути к файлам.Для каждого поля DBF необходимо указать тип, размер и (при необходимости) количество десятичных знаков.

Некоторые вопросы:

Какое программное обеспечение будет использовать выходной файл DBF?

Не существует такого понятия, как "единственный" формат файла DBF.Вам нужен dBase III?База 4?7?Visual FoxPro?так далее?

Какова максимальная длина текстового поля, которое нужно написать?У вас есть текст не ASCII?

Какая версия Python?

Если ваши требования минимальны (формат dBase III, без текста не ASCII, текст <= 254 байта, Python 2.X), то рецепт поваренной книги, который вы цитировали, должен выполнить эту работу. </p>

5 голосов
/ 14 декабря 2010

Используйте библиотеку csv для чтения ваших данных из файла csv.Сторонняя библиотека dbf может написать для вас файл dbf.

Редактировать: Первоначально я перечислил dbfpy, но библиотека выше, кажется, более активно обновляется.

2 голосов
/ 26 сентября 2013

Я создал скрипт Python здесь.Он должен быть настраиваемым для любого макета CSV.Вы должны знать свою структуру данных DBF, прежде чем это станет возможным.Этот сценарий требует два файла CSV, один для настройки заголовка DBF и один для ваших данных тела.удачи.

https://github.com/mikebrennan/csv2dbf_python

2 голосов
/ 14 декабря 2010

Насколько мне известно, нет ничего хорошего.Мне приходилось работать с файлами xBase много раз на протяжении многих лет, и я все время нахожу себя пишущим код для этого, когда мне это нужно.У меня где-то в одной из моих резервных копий есть довольно функциональная библиотека на чистом Python, но я точно не знаю, где это.

К счастью, формат файла xBase - это еще не все.сложный.Вы можете найти спецификацию в интернете , конечно.С первого взгляда модуль, с которым вы связались, выглядит хорошо, но, конечно, сделайте копии любых данных, с которыми вы работаете, перед его использованием.

Прочная, полностью функциональная библиотека xBase для чтения / записи со всеми колоколамиа свистки - это то, что было в моем списке TODO какое-то время ... Я могу даже добраться до того, что осталось в этом году, если мне повезет ... (вероятно, нет, хотя, к сожалению).

...