Может ли кто-нибудь указать мне в правильном направлении, как открыть файл .mdb в python? Обычно мне нравится включать некоторый код, чтобы начать обсуждение, но я не знаю, с чего начать. Я работаю с mysql с честным битом с python. Мне было интересно, есть ли способ работать с .mdb-файлами аналогичным образом?Как обращаться с файлами доступа .mdb с python
ответ
Ниже приведен код, написанный мной для another SO question.
Требуется сторонний участник pyodbc module.
Этот очень простой пример подключается к таблице и экспортирует результаты в файл.
Не стесняйтесь расширять свой вопрос с помощью каких-либо конкретных потребностей, которые могут возникнуть у вас.
import csv, pyodbc
# set up some constants
MDB = 'c:/path/to/my.mdb'; DRV = '{Microsoft Access Driver (*.mdb)}'; PWD = 'pw'
# connect to db
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
# run a query and get the results
SQL = 'SELECT * FROM mytable;' # your query goes here
rows = cur.execute(SQL).fetchall()
cur.close()
con.close()
# you could change the mode from 'w' to 'a' (append) for any subsequent queries
with open('mytable.csv', 'wb') as fou:
csv_writer = csv.writer(fou) # default field-delimiter is ","
csv_writer.writerows(rows)
Это выглядит похоже на предыдущий вопрос:
- What do I need to read Microsoft Access databases using Python?
- http://code.activestate.com/recipes/528868-extraction-and-manipulation-class-for-microsoft-ac/
Ответ должен быть полезным.
Хотя эта ссылка может ответить на этот вопрос, то лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/18943453) –
В дополнение к ответу Bernie, я хотел бы добавить, что можно восстановить схему базы данных. В приведенном ниже коде перечислены таблицы (b [2] содержит имя таблицы).
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
tables = list(cur.tables())
print 'tables'
for b in tables:
print b
Код ниже перечислены все столбцы из всех таблиц:
colDesc = list(cur.columns())
Для решения, которое работает на любой платформе, которая может работать Java, рассмотреть возможность использования Jython или JayDeBeApi вместе с водителем UCanAccess JDBC , Для получения дополнительной информации см смежный вопрос
Read an Access database in Python on non-Windows platform (Linux or Mac)
Там в meza library by Reuben Cummings, который может читать базы данных Microsoft Access через mdbtools.
Установка
# The mdbtools package for Python deals with MongoDB, not MS Access.
# So install the package through `apt` if you're on Debian/Ubuntu
$ sudo apt install mdbtools
$ pip install meza
Использование
>>> from meza import io
>>> records = io.read('database.mdb') # only file path, no file objects
>>> print(next(records))
Table1
Table2
…
отлично работает с Linux (тестируется в CenOs 7 и Ubuntu с python 2.7), очень простой способ читать данные из файлов .mdb. Благодаря ;-) – serfer2
- 1. Как обращаться с файлами .tar.md5
- 2. Как обращаться с javascript-файлами в express.js?
- 3. Как обращаться с «../» в python?
- 4. Как обращаться с входными файлами .gz с Hadoop?
- 5. Как обращаться с токеном доступа в loopback
- 6. Работа с файлами в Python?
- 7. python с .pdb файлами
- 8. Python. Операции с файлами
- 9. Python словари с файлами
- 10. операции с файлами Python
- 11. Манипуляция файлами с python
- 12. Сплит-пакет debian - как правильно обращаться с файлами?
- 13. Как обращаться с файлами, имена которых являются флагами
- 14. доступа: Shell CMD Open MDB
- 15. открытие файла доступа mdb без доступа
- 16. Как правильно обращаться с ошибкой python
- 17. Как обращаться с Python xmlrpclib Connection Refused?
- 18. Как обращаться с KeyError в Python?
- 19. Как обращаться с назначением атрибутов python stray
- 20. Как обращаться с двумерным dict в python?
- 21. Работа с файлами прямого доступа в C++
- 22. Python: Nosetests с несколькими файлами
- 23. Python Упражнение «Помощь с файлами»
- 24. Манипулирование файлами csv с Python
- 25. Делитесь файлами с сервером python
- 26. Python - работа с .csv-файлами
- 27. Управление файлами с использованием Python
- 28. python 2.7 трудность с файлами
- 29. Python 3 - работа с файлами
- 30. Как работать с файлами csv в Python?
Это, похоже, не работает из Linux, поскольку по умолчанию для драйвера Access отсутствует драйвер, в котором используется pyodbc. «Имя источника данных не найдено, и указанный драйвер по умолчанию не указан (0) (SQLDriverConnect)» – Cerin
@Cerin: спасибо за обновление. Поскольку вопрос не указывал «из Linux», я не рассматривал эту проблему. С наилучшими пожеланиями. – bernie
@bernie есть способ сделать это в linux? – NumenorForLife