[Tutor] readline
Dave Angel
davea at davea.name
Wed Jul 31 22:57:29 CEST 2013
On 07/31/2013 04:12 PM, Mike McTernan wrote:
> I am having problems with the readline command in Python 2.7.
>
> I have a text file that has 12 lines of text, each line represents a
> response to a variable called star_sign that is collected via
> raw_input.
>
> However, instead of printing the line 5 it prints the first 5 letters on line 1.
>
> Here is the program:
>
> from sys import argv
>
> script, zodiac = argv
>
> prediction = open(zodiac, "r")
>
> prompt = "> "
>
> def welcome():
> print "Welcome to your daily horoscope"
> horoscope()
>
> def horoscope():
> print "I can predict your future"
> print "What is your starsign?"
> star_sign = raw_input(prompt)
>
> if "Leo" in star_sign:
> print prediction.readline(5)
That 5 limits the number of bytes that readline() will read to 5. I
doubt if that's what you wanted.
>
> else:
> print "You gonna die"
>
> welcome()
I suggest instead that you replace the prediction line with
infile = open(zodiac, "r")
predictions = infile.readlines()
infile.close()
And the print line with
print predictions[5]
Notice that predictions is now a list of strings, each representing one
line of the file. They also have newlines, so you may want to strip()
them, but that's a minor issue.
--
DaveA
More information about the Tutor
mailing list