如何在 Python 中将 .docx 转换为 .txt

gab*_*use 6 python cpu-word

我想将大量 MS Word 文件转换为纯文本格式。我不知道如何在 Python 中做到这一点。我在网上找到了以下代码。我的路径是本地路径,所有文件名都类似于 cx-xxx(即 c1-000、c1-001、c2-000、c2-001 等):

from docx import [name of file]
import io
import shutil
import os

def convertDocxToText(path):
for d in os.listdir(path):
    fileExtension=d.split(".")[-1]
    if fileExtension =="docx":
        docxFilename = path + d
        print(docxFilename)
        document = Document(docxFilename)
        textFilename = path + d.split(".")[0] + ".txt"
        with io.open(textFilename,"c", encoding="utf-8") as textFile:
            for para in document.paragraphs: 
                textFile.write(unicode(para.text))

path= "/home/python/resumes/"
convertDocxToText(path)
Run Code Online (Sandbox Code Playgroud)

Gus*_*sen 12

使用 pypandoc 将 docx 转换为 txt:

import pypandoc

# Example file:
docxFilename = 'somefile.docx'
output = pypandoc.convert_file(docxFilename, 'plain', outputfile="somefile.txt")
assert output == ""
Run Code Online (Sandbox Code Playgroud)

请参阅此处的官方文档:

https://pypi.org/project/pypandoc/

  • 使用“plain”而不是“txt” (5认同)

MJM*_*MJM 5

您还可以在 Python 中使用库docx2txt。这是一个例子:

我使用 glob 迭代文件夹中的所有 DOCX 文件。注意:我对原始名称使用了一些列表理解,以便在 TXT 文件名中重新使用它。

如果有什么我忘记解释的,请标记我,我会编辑它。

import docx2txt
import glob

directory = glob.glob('C:/folder_name/*.docx')

for file_name in directory:
    with open(file_name, 'rb') as infile:
        with open(file_name[:-5]+'.txt', 'w', encoding='utf-8') as outfile:
            doc = docx2txt.process(infile)
            outfile.write(doc)

print("=========")
print("All done!")
Run Code Online (Sandbox Code Playgroud)