[Tutor] Trying to enter text from a file to a Dictionary

Alan Gauld alan.gauld at freenet.co.uk
Fri Jan 27 11:01:19 CET 2006


Hi Ben,

> I want to enter the words and definitions from the  text file into the 
> dict.
> The way the text file is set up is that one  line is the word and the
> next line is the definition.

>  I tried using a for loop like this
>
>  f = open('glossary.txt','r')
>  gloss = {}
>
>  for line in f:
>      gloss[line] = line

The problem that you have is that you really need to read two lines at a 
time.
(Assuming that the definitions are all on one line which may not be true!)
A while loop may be easier in this case.

A for loop will read each line individually. You then need to set a 
definition
flag to tell the loop body whether you are reading a definition or a key.

Either type of loop is possible. Since you started with a for loop lets 
stick with it...

definition = False
currentKey = None

for line in f:
    if isDefinition:
       gloss[currentKey] = line
       currentKey = None
       isDefinition = False
    else:
       currentKey = line
       isDefinition = True

If the definitions take up more than one line each then you will need to 
think
about how to identify the end of a definition - a blank line maybe? You will
need to append the lines to the glossary entry (rather than just assign 
them)
until the end of the definition. And you will need to update the 
isDefinition
flag at the appropriate times.

HTH,

Alan G
Author of the learn to program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld




More information about the Tutor mailing list