我正在尝试使用docx python组合仅包含表格的多个word文档。该代码在指定的文件夹中查找所有docx文件,并创建数据列表。但是,我一直坚持将这些数据从列表转换为pandas数据框。 A link to the tables that I am trying to copy into is here。 我处理过的代码在这里:
import pandas as pd
import io
import os
import csv
from docx import Document
import glob
def read_docx_tables(filename, tab_id=None, **kwargs):
def read_docx_tab(tab, **kwargs):
vf = io.StringIO()
writer = csv.writer(vf)
for row in tab.rows:
writer.writerow(cell.text for cell in row.cells)
vf.seek(0)
return pd.read_csv(vf, **kwargs)
doc = Document(filename)
if tab_id is None:
return [read_docx_tab(tab, **kwargs) for tab in doc.tables]
else:
try:
return read_docx_tab(doc.tables[tab_id], **kwargs)
except IndexError:
print('Error: specified [tab_id]: {} does not exist.'.format(tab_id))
raise
path = 'C:\\data\\' # use your path
filelist = glob.glob(path + "/*.docx")
li = []
for file in filelist:
df= read_docx_tables(file)
li.append(df)
print(li)
如果我尝试以下代码:data = pd.concat(li)最后出现以下错误:TypeError:无法连接类型为”的对象;只有Series和DataFrame objs有效。
任何帮助将不胜感激