For the exercises in this chapter we need a list of English words.
There are lots of word lists available on the Web, but the one most
suitable for our purpose is one of the word lists collected and
contributed to the public domain by Grady Ward as part of the Moby
lexicon project (see http://wikipedia.org/wiki/Moby_Project). It is a list of
113,809 official crosswords; that is, words that are considered valid in
crossword puzzles and other word games. In the Moby collection, the
113809of.fic; you can
download a copy, with the simpler name
words.txt, from http://thinkpython.com/code/words.txt.
This file is in plain text, so you can open it with a text editor,
but you can also read it from Python. The built-in function
open takes the name of the file as a parameter
and returns a file object you can use
to read the file.
>>> fin = open('words.txt') >>> print fin <open file 'words.txt', mode 'r' at 0xb7f4b380>
fin is a common name for a file
object used for input. Mode
'r' indicates that this file is open for reading
(as opposed to
The file object provides several methods for reading, including
readline, which reads characters from
the file until it gets to a newline and returns the result as a
>>> fin.readline() 'aa\r\n'
The first word in this particular list, from
words.txt, is “aa,” which is a kind of lava. The
\r\n represents two whitespace characters, a carriage return and a newline, that ...