我正在使用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()
上面的函数返回表的列表。