Как создать файл .mdb? - PullRequest
0 голосов
/ 21 июня 2019

Я новичок в zarr, HDF5 и LMDB.Я конвертировал данные из HDF5 в Zarr, но получил много файлов с расширением .n (n от 0 до 31).Я хочу иметь только один файл с расширением .zarr.Я пытался использовать LMDB (функция zarr.LMDBStore), но я не понимаю, как создать файл .mdb?У вас есть идея, как это сделать?Спасибо!

Ответы [ 3 ]

0 голосов
/ 21 июня 2019

@ kish При попытке вашего решения я получил эту ошибку:

из comtypes.gen Доступ для импорта ImportError: невозможно импортировать имя 'Access'

0 голосов
/ 05 июля 2019

В документации для класса LMDBStore есть несколько примеров использования LMDB в качестве хранилища Zarr. E.g.:

>>> store = zarr.LMDBStore('data/group.mdb')
>>> root = zarr.group(store=store, overwrite=True)
>>> foo = root.create_group('foo')
>>> bar = foo.zeros('bar', shape=(10, 10), chunks=(5, 5))
>>> bar[...] = 42
>>> store.close()  # don't forget to call this when you're done

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

0 голосов
/ 21 июня 2019

Возможно, вы захотите иметь под рукой ссылку Access DAO / ADO / VBA для используемых методов, поскольку модуль comtypes динамически генерирует оболочки библиотек COM, поэтому встроенной документации нет.

Вот краткий пример того, как это работает. (Иди и проверь это сам.)

from comtypes.client import CreateObject

access = CreateObject('Access.Application')

from comtypes.gen import Access

DBEngine = access.DBEngine
db = DBEngine.CreateDatabase('test.mdb', Access.DB_LANG_GENERAL)
      # For me, test.mdb was created in my My Documents folder when I ran the script 

db.BeginTrans()

db.Execute("CREATE TABLE test (ID Text, numapples Integer)")
db.Execute("INSERT INTO test VALUES ('ABC', 3)")

db.CommitTrans()
db.Close(

)

(Перемещен второй оператор импорта после строки CreateObject для случаев, когда модуль оболочки Python для библиотеки типов ранее не существовал.)

...