Ned Deily <n...@acm.org> added the comment: The test case you've provide is working as expected but the code doesn't make a lot of sense as provided. The function loadDbase sets sys.stdin to a disk file but never sets it back again. If you run this in an interactive interpreter on any Unix-like system and call that function, it will leave sys.stdin still connected to the disk file which will give unexpected results. I don't have a copy of the book so I don't know how the author recommends to run things but it won't work as it stands (also, the function loadDbase is incomplete compared with the book's example files). You can remove the immediate problem by adding the following line just before the "return db" at the end of loadDbase: sys.stdin = sys.__stdin__ That will restore the original value of sys.stdin.
You may want to ask questions like this on either the tutor mailing list or comp.lang.python. http://www.python.org/community/lists/ http://docs.python.org/library/sys.html#sys.__stdin__ ---------- assignee: ronaldoussoren -> components: -Macintosh nosy: +ned.deily resolution: -> invalid stage: -> committed/rejected status: open -> closed _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12482> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com