私はこの質問に答えるプログラムを書いた。私のプログラムには出力がないと言われています。私のプログラムに出力がないのはなぜですか?
質問: mbox-short.txtを読み、各メッセージの1時間ごとの配信を調べるプログラムを作成します。 'From'行から時間を見つけ、コロンを使用して文字列をもう一度分割することで、時間を引き出すことができます。
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'で始まるかどうかを確認する必要があります。そうでなければ、 'From'で始まる行が見つかるまで、continueはコードを繰り返し実行します。次に、次のコードを実行します。 –