如何使用meza从.mdb获取表格?

时间:2017-11-12 14:25:17

标签: python python-3.x

我正在使用meza来读取.mdb(MSAccess数据库)文件。

from meza import io  

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

io.read_mdb返回生成器对象(如果指定了表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

然后我会从文件temp.txt中读取表格

修改

根据reubano回复编辑:

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

上面的函数返回表的列表。

1 个答案:

答案 0 :(得分:1)

最好使用mdbtools命令mdb-tables

mdb-tables test.mdb