質問

誰かがPythonで.mdbファイルを開く方法について正しい方向を教えてくれませんか?私は通常、議論を始めるためにコードを含めることを好みますが、どこから始めればよいかわかりません。私は mysql と Python をかなり併用しています。.mdb ファイルを同様の方法で操作する方法があるかどうか疑問に思いました。

役に立ちましたか?

解決

以下は、私は別のSOの質問の書いたいくつかのコードです。
これは、サードパーティが必要です pyodbcモジュールのます。

この非常に単純な例では、テーブルに接続し、結果をファイルにエクスポートします。
あなたが持つかもしれない任意のより具体的なニーズにあなたの質問時に拡大すること自由に感じています。

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)

他のヒント

そこにあるのは、 ルーベン・カミングスのメザ図書館 Microsoft Accessデータベースを読み取ることができます mdbツール.

インストール

# 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
…

バーニーの応答に加えて、私はデータベースのスキーマを回復することが可能であることを追加します。リスト以下のコードテーブル(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 を実行できる任意のプラットフォームで動作するソリューションについては、次の使用を検討してください。 ジトン または ジェイデベアピ 一緒に ユーキャンアクセス JDBCドライバー。詳細については、関連する質問を参照してください

Windows 以外のプラットフォーム (Linux または Mac) で Python で Access データベースを読み取る

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top