Андрей Пугачев wrote:
> Hi
> I'm learning python a few weeks and have problems with code that read text
> from txt-file
> Code doing all right, but in the end I have error
>
> Traceback (most recent call last):
> File "trivia_challenge.py", line 81, in <module>
> main()
> File "trivia_challenge.py", line 74, in main
> category, question, answers, correct, explanation, points =
> next_block(trivia_file)
> File "trivia_challenge.py", line 37, in next_block
> points = int(next_line(the_file))
> ValueError: invalid literal for int() with base 10: ''
>
> I see it don't like empty line, but line is not emty...
>
> py-file http://pastebin.com/9C4guZq5
>
> txt-file http://pastebin.com/dZVs8V9P
Put some debugging code into your script that keeps track of the line you
are reading. For that you can modify the next_line() routine:
current_line = 0
def next_line(the_file):
"""Return next line from the trivia file, formatted."""
global current_line
line = the_file.readline()
print("XXX CURRENT LINE", current_line, repr(line))
current_line += 1
line = line.replace("/", "\n")
return line
Then, when you run the script again, there will be a line
XXX CURRENT LINE 451 'yabba dabba doo\n'
printed right before the exception is triggered. Once you know the line
(hint: it's not actually a line in the file) the problem should be easy to
fix. (Come back here to ask for more hints if you cannot fix it.)
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor