-
-
Save zcakzwa/2bf34f782db0c43847250b5fa86bc2bf to your computer and use it in GitHub Desktop.
name = raw_input("Enter file:") | |
if len(name) < 1 : name = "mbox-short.txt" | |
handle = open(name) | |
d=dict() | |
for line in handle: | |
if not line.startswith("From "): | |
continue | |
else: | |
line=line.split() | |
line=line[5] | |
line=line[0:2] | |
d[line]=d.get(line,0)+1 | |
lst=list() | |
for value,count in d.items(): | |
lst.append((value,count)) | |
lst.sort() | |
for value,count in lst: | |
print value,count |
KarenTheEarth
commented
Apr 9, 2023
name = input("Enter file:")
handle = open(name) #mbox-short.txt
list1=list()
for lines in handle:
if lines.startswith('From '):
lines2=lines.strip()
lines3=lines2.split()
lines4=lines3[5]
lines5=lines4.split(':')
lines6=lines5[0]
#print(lines6)
list1.append(lines6)
#print(list1)
dict1=dict()
for hrs in list1:
dict1[hrs]=dict1.get(hrs,0)+1
#print(dict1)
for K,V in sorted(dict1.items()):
print(K,V)
Hey did you solve the issue? I am also facing the same problem
Yes I solved the problem.
Just leave space after 'm' in 'From '
`name = input("Enter file:")
if len(name) < 1:
name = "mbox-short.txt"
handle = open(name)
email = dict()
for line in handle:
if not line.startswith('From '): continue
time = line.split()
hour = time[5].split(':')[0]
email[hour] = email.get(hour,0) +1
lst = list()
for k,v in email.items():
lst.append([k,v])
lst = sorted(lst)
for k,v in lst:
print(k,v)
`
@ChernetAsmamaw i used the code you provided but still it says list index out of range.
@Le12vi A "list index out of range" error occurs when you try to access an index of a list that does not exist. Perhaps you made a mistake when naming your list variables, could you check that?
handle = open('mbox-short.txt')
di = dict()
for line in handle:
words = line.split()
if len(words) > 3 and words[0] == 'From':
words = line.split()
time = words[5].split(':')
hour = time[0]
di[hour] = di.get(hour,0)+1
for k, v in sorted(di.items()):
print(k,v)
fname = input('Enter file name: ')
try:
fh = open(fname)
except:
print('File cannot be opened', fname)
quit()
count, hours = {}, [] #set dictionary and list
for line in fh:
if line.startswith('From '): #find lines that start with "From"
words = line.split() #splits lines into 'words'
hour = words[5][0:2] #pinpoints the time in the line and further splits to show only hour
count[hour] = count.get(hour, 0) + 1 #counts how many times that hour shows up
for k, v in count.items(): hours.append((k, v))
hours.sort() #sorts dictionary by key
for k, v in hours: print(k, v) #prints the hour, and how often that hour showed up
handle = open("mbox-short.txt")
count = dict()
for line in handle:
word = line.split()
#guardian pattern
if len (word) <1:
continue
if word[0] != 'From':
continue
word = word[5]
word = word[0:2]
count[word]=count.get(word,0)+1
t = sorted([(k,v) for k,v in count.items()])
for k,v in t:
print (k,v)
name = input("Enter file:")
if len(name) < 1:
name = "mbox-short.txt"
handle = open(name)
for line in handle:
if not line.startswith('From'):
continue
else:
line = line.split()
word = line[5]
word = word.split(':')
word = word[0]
counts = dict()
for count in word:
counts[count] = counts.get( count, 0) +1
lst = list()
for k,v in counts.items():
lst.append(v,k)
lst = sorted(lst, reverse=True)
for v,k in lst:
print(k,v)
My code can not do well, can anyone find some problems? thankyou!!!
name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
d=dict()
for line in handle:
if not line.startswith("From "):
continue
else:
line=line.split()
line=line[5]
line=line[0:2]
d[line]=d.get(line,0)+1
lst=list()
for value,count in d.items():
lst.append((value,count))
lst.sort()
for value,count in lst:
print(value,count)
name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
d=dict()
for line in handle:
if not line.startswith("From "):
continue
else:
line=line.split()
line=line[5]
line=line[0:2]
d[line]=d.get(line,0)+1
lst=list()
for value,count in d.items():
lst.append((value,count))
lst.sort()
for value,count in lst:
print (value,count)
name = input("Enter file:")
if len(name) < 1:
name = "mbox-short.txt"
handle = open(name)
hour_list = list()
hour_dictionary = dict()
for line in handle:
line_splited = line.split(" ")
if line_splited[0] == "From":
hour_list.append(line_splited[6][0:2])
for hour in sorted(hour_list):
if hour_dictionary.get(hour, False) == False:
hour_dictionary[hour] = 1
else:
hour_dictionary[hour] = hour_dictionary[hour] + 1
for key, value in hour_dictionary.items():
print(key, value)
name = input("Enter file:")
if len(name) < 1:
name = "mbox-short.txt"
handle = open(name,'r')
counts = dict()
for line in handle:
if line.startswith("From "):
pos = line.find(":")
time = (line[pos-2 : pos]) #finding hour
counts[time] = counts.get(time,0) + 1 #creating dictionary
order = sorted(counts.items())
for key, value in order : print(key, value)
Hey guys this is my code on the Q it works nicely but if there is anything that I did wrong or I could have initially avoided pls let me know :)
fname = input("Enter File Name: ")
fhandle = open(fname)
lst = list()
count = dict()
finallist = list()
for line in fhandle:
if line.startswith("From") and not line.startswith("From:"):
line = line.split()
lst.append(line[5])
for hour in lst:
hour = hour.split(":")
finallist.append(hour[0])
for ftime in finallist:
count[ftime] = count.get(ftime, 0) + 1
for x, y in sorted(count.items()):
print(x, y)