2017-11-12 9 views
1

私はmezaを使用して.mdb(MSAccessデータベース)ファイルを読み込みます。ジェネレータオブジェクトを返すio.read_mdbmezaを使用して.mdbからテーブルを取得する方法は?

from meza import io 

try: 
    self.data = list(io.read_mdb(self.db_path, table=self.table)) 
except TypeError as e: 
    raise 

は(表paramは指定されている場合はそうではない場合は最初から指定されたデータベースからすべての行を返します)。しかし、このコードスニペットを実行すると、コンソールにすべてのテーブル名も表示されます。

質問: mezaですべてのテーブル名を取得する方法はありますか? または 「望ましくない」テーブルのコンソール出力を捕まえる方法はありますか?

私は成功せず、これを試してみました:

with open(here_path + os.sep + "temp.txt", "w") as f: 
    with redirect_stdout(f): 
     try: 
      x = list(io.read_mdb(path)) 
     except TypeError as e: 
       raise 

その後、私はちょうど

EDIT TEMP.TXTファイルからテーブルを読んでいました:reubanoの回答に基づいて

編集:

def show_tables_linux(path): 
    tables = subprocess.check_output(["mdb-tables", path]) 
    return tables.decode().split() 

上記の関数は、lを返します。テーブルのist。

答えて

1

mdbtoolsコマンドmdb-tablesを使用する方がよいでしょう。

mdb-tables test.mdb

関連する問題