在word文件中找到一个标题,然后用python将整个段落复制到新的word文件中

2024-04-25 06:35:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下情况:

我有几百字的文件,里面有公司信息。我想在这些文件中搜索特定的单词,找到特定的段落,并将这些段落复制到新的word文件中。基本上我只需要把原来的几百个文档缩小到一个可读性更强的大小。你知道吗

我拥有的文档位于一个目录中,并带有不同的名称。在每一种情况下,我都想提取出我需要单独定义的特定信息。你知道吗

为此,我首先使用以下代码将所有文件名写入.csv文件:

# list all transcript files and print names to .csv

import os
import csv

with open("C:\\Users\\Stef\\Desktop\\Files.csv", 'w') as f:
    writer = csv.writer(f)
    for path, dirs, files in os.walk("C:\\Users\\Stef\\Desktop\\Files"):
        for filename in files:
            writer.writerow([filename])

这很管用。下一个我打开文件.csv并编辑第二列中我需要在每个文档中搜索的关键字。你知道吗

有关.csv文件的外观,请参见下图:

CSV file

我拥有的几百个单词的文件,是由不同层次的标题构成的。我现在想做的是用我在.csv中手动定义的关键字搜索特定的标题,然后将下面文章的内容复制到一个新文件中。我上传了一个word文件的摘录,“Presentation”是“Heading 1”,“North America”和“China”是“Heading 2”。你知道吗

Word example

例如,在本例中,我希望搜索“标题2”“北美”,然后将下面的文本(“总计[…]稀释基础”)复制到一个新的word文件中,该文件的名称与旧文件的名称相同,只是添加了_清洁.docx". 你知道吗

我从以下代码开始:

import os
import glob
import csv
import docx

os.chdir('C:\\Users\\Stef\\Desktop')

f = open('Files.csv')
csv_f = csv.reader(f)

file_name = []
matched_keyword = []

for row in csv_f:
  file_name.append(row[0])
  matched_keyword.append(row[1])

filelist = file_name
filelist2 = matched_keyword

for i, j in zip(filelist, filelist2):
  rootdir = 'C:\\Users\\Stef\\Desktop\\Files'
  doc = docx.Document(os.path.join(rootdir, i))

在这之后,我找不到任何有效的解决办法。我试过几件事,但都没有成功。我将非常感谢进一步的帮助。你知道吗

我认为结尾应该是这样的,但是我不太确定。你知道吗

output = 
output.save(i +"._clean.docx")

考虑了以下问题和想法:

Extracting MS Word document formatting elements along with raw text information

extracting text from MS word files in python

How can I search a word in a Word 2007 .docx file?


Tags: 文件csvin文档importforosfiles