我写了一个程序来回答这个问题。它说我的程序没有输出。为什么我的程序没有输出?
问题: 编写一个程序来读取mbox-short.txt文件,并找出每个消息在一天当中的小时分布情况。您可以通过查找时间,然后使用冒号第二次拆分字符串,从“发件人”行拉出小时。
From [email protected] Sat Jan 5 09:14:16 2008
一旦累计了每小时的计数值,就按照下图所示打印计数,按小时排序。
所需的输出:
04 3
06 1
07 1
09 2
10 3
11 6
14 1
15 2
16 4
17 2
18 1
19 1
我的代码:
name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
counts = dict()
for line in handle:
if not line.startswith('From'):
continue
words = line.split()
time = words[5]
timesplit = time.split(':')
hour = timesplit[0]
for x in hour:
counts[x] = counts.get(x, 0) + 1
lists = list()
for key, val in counts.items():
lists.append((key, val))
lists.sort(reverse=True)
for val, key in lists:
print key, val
您确定您的代码已正确粘贴到此页面中吗?那么'words = line.splite()'后面的代码将永远不会执行,因为它与'continue'具有相同的缩进。 – ymonad
我首先必须检查一行是否以'From'开头。如果continue没有让代码一次又一次地运行,直到它找到一个以'From'开头的行。然后它执行下面的代码。 –