7.2 Write a program that prompts for a file name, then opens that file and reads through the file, looking for lines of the form: X-DSPAM-Confidence: 0.8475 Count these lines and extract the floating point values from each of the lines and compute the average of those values and produce an output as shown below. Do not use the sum() function or a variable named sum in your solution. You can download the sample data at http://www.py4e.com/code3/mbox-short.txt when you are testing below enter mbox-short.txt as the file name.

fname = input("Enter file name: ")
if len(fname) == 0:
    fname = 'mbox-short.txt'
fh = open(fname)
count = 0
tot = 0
ans = 0
for line in fh:
    if not line.startswith("X-DSPAM-Confidence:") : continue
    count = count + 1
    num = float(line[21:])
    tot = num + tot
ans = tot / count
print ("Average spam confidence:", ans)

Post a Comment

4 Comments

  1. If we enter mbox-short txt it showing no such file for above code can you help. Me with this

    ReplyDelete
    Replies
    1. You need to download mbox txt to your device.

      Delete
  2. Why do you choose 21 in the row "num = float (line [21:])"?

    ReplyDelete
  3. I used line[19:] and it worked perfectly fine

    ReplyDelete