我有一个文件夹,里面有很多txt文件。我希望计数一组单词在每个txt文件的某个部分中出现的次数,并将结果导出到一个新的excel文件中。具体来说,我只想在“公司A”一词之后,以“公司B”结尾的部分文本中查找单词的出现情况。
例如:
我想在以下案文的粗体部分寻找“公司”和“董事会”这两个词:
...the董事会的公司A监督管理固有的风险,经营公司的业务和执行其战略计划。董事会在年度战略规划会议上审查与公司战略计划相关的风险,并在全年定期进行审查,以此作为对B公司战略方向的审议的一部分。此外,审计委员会还处理与.有关的主要风险。
我设法统计了一组单词的出现情况,但是从整个txt文件,而不是从公司A到公司B的部分。
import os
import sys
import glob
for filename in glob.iglob('file path' + '**/*', recursive=True):
def countWords(filename, list_words):
try:
reading = open(filename, "r+", encoding="utf-8")
check = reading.readlines()
reading.close()
for each in list_words:
lower = each.lower()
count = 0
for string in check:
word_check = string.split()
for word in word_check:
lowerword = word.lower()
line = lowerword.strip("!@#$%^&*()_+?><:.,-'\\ ")
if lower == line:
count += 1
print(lower, ":", count)
except FileNotFoundError:
print("This file doesn't exist.")
for zero in list_words:
if zero != "":
print(zero, ":", "0")
else:
pass
print('----')
print(os.path.basename(filename))
countWords(filename, ["Corporation", "Board"])示例文本的最后输出应该如下所示:
上面的进程应该被复制到文件夹的所有txt文件中,并作为一个excel文件导出。
谢谢你的考虑,我为这个问题的篇幅事先表示歉意。
发布于 2019-06-07 22:11:22
您可以尝试regexp,假设在看到公司b之前,如果您看到公司a的重复,就需要整个字符串。
re.findall('company a.*?company b', 'company a did some things in agreement with company b')这将提供以公司a开头,以公司b结尾的所有文本字符串的列表。
https://stackoverflow.com/questions/56501624
复制相似问题