我有以下情况:
我有几百个包含公司信息的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])
这完美无缺。接下来,我打开Files.csv并编辑我需要在每个文档中搜索的关键字的第二列。
请参阅下面的图片,了解.csv文件的外观:
我拥有的几百个单词文件,由不同的标题层组成。我现在想要做的是使用.csv中手动定义的关键字搜索特定标题,然后将以下段落的内容复制到新文件中。我上传了一个word文件的摘录," Presentation"是一个'标题1'和"北美"和#34;中国"是'标题2'。
在这种情况下,我希望例如搜索标题2' "北美"然后将下面的文本("总共[...]稀释的基础。)复制到一个与旧名称相同的新单词文件中添加" _clean.docx&#34 ;。
我开始使用我的代码如下:
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