Как я могу пакетировать этот код в папке файлов Word? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть кусок кода, который я хотел бы запустить в папке с файлами docx. Я успешно выяснил, как я могу запустить это для одного файла (см. Код ниже), но я слишком зеленый, чтобы понять, как это пакетировать.

Я бы хотел записать все файлы docx в один файл output.txt, а не записывать их в отдельный файл txt для каждого файла docx.

Спасибо за помощь!

import docx

from docx import Document

def readtxtandtab(filename):
    doc = docx.Document(filename)
    fullText = []
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                fullText.append(cell.text)

    for para in doc.paragraphs:
        fullText.append(para.text)

    return '\n'.join(fullText)

with open("Output.txt", "a") as text_file:
    text_file.write(readtxtandtab('filename.docx'))

1 Ответ

0 голосов
/ 10 июля 2019

Вы можете использовать glob, чтобы получить все файлы слов в каталоге. Затем вы можете использовать цикл for для выполнения кода для каждого файла.

import glob
.
.
.
with open("output.txt", "a") as text_file:
    for wordfile in glob.glob('*.docx'):
        text_file.write(readtxtandtab(wordfile))

Для glob строка *.docx означает выбрать все, что заканчивается .docx.

...