"Katt" <[email protected]> wrote

def read_important_dates():
   print "\nReading text file into program: important.txt"
   text_file = open("important.txt", "r")
   dates = text_file.readlines()
   text_file.close()
   print dates
#
read_important_dates()

When it gets to print dates I see the following:

[ ' "Old Test","2009_10_20"\n', ' "Current Test",2009_10_25"\n', ' "Future Test","2009_11_01" ' ]

Does it look this way because I am using the "print"? Or do I still need to add the inner [ ] and strip out the \n and '?

Its that way because you are just storing the raw strings read from the file (notice the outer single quotes). You need to interpret(ie parse) the strings to extract the data. You should also strip the lines to get rid of the \n characters.

If I add brackets to the text file I am reading from my output looks like

If you have control over the text file then add a unique character as
a field separator and then uyou can use split() to split the fields easily.
Common choices of field separator include unlikely currency symbols
or graphics characters.

I have tried line.strip() to remove the \n and ' characters, but get the following error:

   File "fileio.py", line 6, in read_important_dates
       line.strip()
NameError: global name 'line' is not defined

And sure enough you have no line variable. You will need to
process the lines one by one. A list comp can do this for you

   dates = text_file.readlines()
becomes

dates = [line.strip() for line in text_file]

And if you knew the sepsatator char you could do that too

dates = [line.strip().split(sep) for line in text_file]

   File "fileio.py", line 6, in read_important_dates
       important_dates = dates.split()
NameError: 'list' object has no attribute 'split'

True ebough. You really need to process the lines one at a time.
This is usually best done as you read them from the file rather
than after storing them in a list - it saves processing the data twice.

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to