如何 return 文件中的某些文本,python - 编程新手

How to return certain text in a file, python - New to programming

我有两个文本文件: File1.txt:

随机词随机词

*** 开始于 ***

需要这些话

*** 结束于 ***

更多随机词

file2.txt:

随机词随机词

更多随机词 *** 开始于 ***

不需要这些字眼

*** 开始于 ***

这里需要这些话

*** 结束于 ***

这些词应该被忽略

到目前为止我已经开发了这个功能:

重新导入

"""函数 returns 小写单词列表 在感兴趣的区域内"""

def get_certain_words_from_file(文件名):

"""defines the given region and returns a list of words inside"""

with open(filename, 'r') as file:
    lines = file.read()
    list_of_lines = lines.splitlines()
    index_start = 0
    index_end = 0
    for i in range(len(list_of_lines)):
        if list_of_lines[i].startswith('***BEGINNING AT '):
            index_start += i
        if list_of_lines[i].startswith('*** ENDING AT'):
            index_end += i
    valid_lines = list_of_lines[index_start : index_end] 
    valid_lines = "".join(str(x) for x in valid_lines)
    valid_lines = valid_lines.lower()
    valid_lines = valid_lines.split()
    
    valid_words = []
    words_on_line = []
    for line in valid_lines:
        words_on_line = re.findall("[a-z]+[-'][a-z]+|[a-z]+[']?|[a-z]+", line)
    for word in words_on_line:
        valid_words.append(word)
    return valid_words
            

文件名 = "file2.txt"

字数 = get_words_from_file(文件名)

print(文件名, "加载成功。")

print("找到 {} 个有效单词。".format(len(words)))

print("有效单词列表:")

字中字:

print(word)

当前输出为:

file2.txt 加载正常。

找到 0 个有效词。

有效单词列表:

但我正在尝试获取:

file2.txt 加载正常。

找到 4 个有效词。

有效单词列表:

需要

这些

字数

这里

我的想法是第一部分有问题,但对 python 和整个编程来说是新的,所以不太确定

有什么帮助谢谢!

from what I see - you don't need regex; you can use Python "in" keyword.

filename = 'input_file'
valid_words = ['word1', 'word2']

with open(filename, 'r') as file:
    lines = file.read()
    list_of_lines = lines.splitlines()
    lines_with_word = []
    for line in list_of_lines:
        for word in valid_words:
            if word in line:
                lines_with_word.append(line)
    print(lines_with_word)