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。