gpt4 book ai didi

python - 使用正则表达式函数时返回值不一致

转载 作者:行者123 更新时间:2023-12-01 09:11:33 24 4
gpt4 key购买 nike

我的代码表现得很奇怪,我感觉它与我正在使用的正则表达式有关。

我正在尝试确定文本文件中的总单词数、唯一单词数和句子数。

这是我的代码:

import sys
import re

file = open('sample.txt', 'r')


def word_count(file):
words = []
reg_ex = r"[A-Za-z0-9']+"
p = re.compile(reg_ex)
for l in file:
for i in p.findall(l):
words.append(i)
return len(words), len(set(words))

def sentence_count(file):
sentences = []
reg_ex = r'[a-zA-Z0-9][.!?]'
p = re.compile(reg_ex)
for l in file:
for i in p.findall(l):
sentences.append(i)
return sentences, len(sentences)

sentence, sentence_count = sentence_count(file)
word_count, unique_word_count = word_count(file)

print('Total word count: {}\n'.format(word_count) +
'Unique words: {}\n'.format(unique_word_count) +
'Sentences: {}'.format(sentence_count))

输出如下:

Total word count:  0
Unique words: 0
Sentences: 5

真正奇怪的是,如果我注释掉sentence_count()函数,word_count()函数开始工作并输出正确的数字。

为什么会出现这种不一致的情况?如果我注释掉任一函数,一个函数将输出正确的值,而另一个函数将输出 0。有人可以帮助我使这两个功能都起作用吗?

最佳答案

问题是您只能对打开的文件进行一次迭代。您需要重新打开或倒回文件以再次迭代它。

例如:

with open('sample.txt', 'r') as f:
sentence, sentence_count = sentence_count(f)
with open('sample.txt', 'r') as f:
word_count, unique_word_count = word_count(f)

或者,f.seek(0) 会倒带文件。

关于python - 使用正则表达式函数时返回值不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51620908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com