遍历 docx 的文件列表以提取和处理 table

iterate through file list of docx to extract and process table

我在几个目录和子目录中面临 3000 个 docx。我必须准备一个列表,其中包含文件名和从 docx 中的表格中提取的信息。我已成功将所有 docx 添加到列表中 targets_in_dir 将其与非相关文件分开。

问题:我想遍历 targets_in_dir 从 docx 中提取所有表格,

len_target =len(targets_in_dir)
file_processed=[]
string_tables=[]

for i in len_target:

    doc = docx.Document(targets_in_dir[i])
    file_processed.append(targets_ind[i])

    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                str.split('MANUFACTURER')
                string_tables.append(cell.text)

我收到错误 'int' object is not iterable

 ---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-4847866a9234> in <module>
      4 string_tables=[]
      5 
----> 6 for i in len_target:
      7 
      8     doc = docx.Document(targets_in_dir[i])

TypeError: 'int' object is not iterable

我做错了什么?

您似乎正在尝试遍历 len_target = len(targets_in_dir),它是一个整数。因为 int 不是可迭代对象,所以您的 for 循环失败。
您需要遍历一个可迭代对象才能使 for 循环工作。
修复为

for i in range(len_target):
    # do stuff

for i in targets_in_dir:
    # do stuff

是一个很好的起点。

此外,您的 file_processed.append(targets_ind[i]) 有错字。