我想将大量 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/
您还可以在 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)