gpt4 book ai didi

python - 不知道如何阅读该行并找到所需的单词

转载 作者:行者123 更新时间:2023-12-01 07:59:52 26 4
gpt4 key购买 nike

我需要做的是:

编写一个程序,根据提交完成的一周中的哪一天对每封邮件进行分类。为此,请查找以“From”开头的行,然后查找第三个单词并记录一周中每一天的运行计数。在程序结束时打印出字典的内容(顺序无关紧要)。

我已经了解了文件搜索的基础知识,但我不知道如何让 python 搜索该行来查找星期几,然后添加到计数中。我尝试的方法返回错误。

我正在使用 Repl.it 来运行 python,它是它的 v3。如果您需要查看这里的txt文件,它是 http://www.pythonlearn.com/code3/mbox.txt

sat = 0
sun = 0
mon = 0
tue = 0
wed = 0
thur = 0
fri = 0

try:
relettter = open('mbox.txt', 'r')
rd = relettter.readlines()

for line in rd:
# line that is being read
lnLen = len(line)
srch = line.startswith("From ")

# only parse the confidence value if there is a match
if srch != -1:
dayOfWeek = '' #The value

if 'Sat' in srch:
sat += 1
elif dayOfWeek == 'Sun':
sun += 1
elif dayOfWeek == 'Mon':
mon += 1
elif dayOfWeek == 'Tue':
tue += 1
elif dayOfWeek == 'Wed':
wed += 1
elif dayOfWeek == 'Thu':
thur += 1
elif dayOfWeek == 'Fri':
fri += 1


print("Days of the days of the week")
print("Saturday: ", sat)
print("Sunday: ", sun)



except Exception as e:
print(e)

我也不介意对 if 语句有一点帮助,我倾向于这样做,并且我想知道更好的方法

结果应打印出一周中每一天在文件中满足所需条件的提及次数。例如星期六:23

最佳答案

使用正确的集合来简化您的逻辑(这是我得到的关于编程的最重要的建议)。在这种情况下,普通的字典是一个合理的选择,并且有很大帮助:

counts = {}

with open('mbox.txt') as fh:
for line in fh:
if line.startswith('From '):
words = line.split()
day = words[2]
if day in counts:
counts[day] += 1
else:
counts[day] = 1

但更好的选择是 defaultdictCounter :

from collections import Counter

with open('mbox.txt') as fh:
counts = Counter(line.split()[2] for line in fh if line.startswith('From '))

关于python - 不知道如何阅读该行并找到所需的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55778840/

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