ESR's redone in python - request for critique

Adelein and Jeremy adeleinandjeremy at
Mon Mar 29 22:35:00 CEST 2004

I have recently completed a mini-project with the goal of rewriting
in Python Eric Raymond's script
except that instead of generating a sigline for mail, it prints a
fortune to screen in the traditional manner of the Unix fortune. I
have succeeded in terms of functionality, but because I am only a
novice programmer, I would appreciate any comments, criticism,
suggestions, alternative options, etc. that more experienced
programmers would be willing to give, whether technical or stylistic
in nature. Here is my code:

#! /usr/bin/env python

## fortune
## Jeremy Conn
## Version 0.9, 20020329
## Description: Generates a random fortune for display onscreen from
##              a single file of quotes which the user maintains; the
##              quotes can be multi-line, and are separated by lines
##              containing only a percent sign (same format as
##              traditional fortune files).

import random
import re
import sys

FORTUNES_FILE = ".fortune"

# What file should we use?
if len(sys.argv) > 1:
    fortunes_file = sys.argv[1]
    fortunes_file = FORTUNES_FILE

# Let's see if we can open that file for reading
    fi = open(fortunes_file, 'r')
    sys.exit("Cannot open fortunes file %s." % fortunes_file)

# Collect the file pointers to each fortune entry in the file
fp_entry = [0]
line = fi.readline()
while line != "":
    if re.match(r'^%$', line):
    line = fi.readline()

# Seek to a random entry
    sys.exit("Cannot seek.")

# Add the entry to output message and then print it
fortune = ''
line = fi.readline()
while line != '':
    if re.match(r'^%$', line):
    fortune += line
    line = fi.readline()
print fortune

# Return fp to beginning of file, close the file, and exit program,0)

- Jeremy
adeleinandjeremy at

Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.

More information about the Python-list mailing list