对于 Python 的初学者来说,我有一个比较困难的任务:需要从 LaTeX 格式的源文件中导入一张表格。我的想法是使用表格名称作为标识符,然后逐行写入数组中,从表格头开始到表格尾结束。请问这个任务最自然的解决方式是什么?
Astropy 软件包 包含一个 LaTeX 表格读取器。
from astropy.table import Table
tab = Table.read('file.tex')
\multicolumn
或 \multirow
这样的命令。我个人会在表格的开头和结尾处加入一个 LaTeX 注释,以表示你感兴趣的行范围。
import linecache
FILEPATH = 'file.tex'
def get_line_range():
'returns the lines at which the table begins and ends'
begin_table_line = None
end_table_line = None
with open(FILEPATH, "r") as file:
array = []
for line_number, line in enumerate(file):
if 'latex comment denoting beginning of table' in line:
begin_table_line = line_number
if 'latex comment denoting end of table' in line:
end_table_line = line_number
return begin_table_line+1, end_table_line
def get_table():
'gets the lines containing the table'
start, end = get_line_range()
return [linecache.getline(FILEPATH, line) for line in xrange(start, end)]