Chapter 9. Case Study: Word Play
Reading Word Lists
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
filename is 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 'w'
for
writing).
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
string:
>>> fin.readline() 'aa\r\n'
The first word in this particular list, from
words.txt, is “aa,” which is a kind of lava. The
sequence \r\n
represents two whitespace characters, a carriage return and a newline, that ...
Get Think Python now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.