[Tutor] newbie: Reading text file
ALAN GAULD
alan.gauld at btinternet.com
Fri Jun 1 10:42:18 CEST 2007
Hi Grant,
> I'm a newbie and this is my first script submission to this email list.
> I was able to parse out the jobs list into a string: "jobs = [ . . ."
> However, I can't make python interpret that string as the command "jobs = [ some list]"
There are ways of doing that but unless you are specifically doing that
as a challenge it is much easier just to import your py file. When you
import a module Python will evaluate the contents as Python code
and the variables in the module become available to you. That way
you don't need to read the file manually.
The only caveat with the import method is that Python needs to find
our module so it must either be in the same folder as your python
script or the folder must be in the sys.path variable. Thus for a general solution:
import sys
sys.path.append('the/folder/where/myfile/lives')
import myfile # no .py
jobs = myfile.jobs
And that should be it. jobs should now contain the same list that
was in your myfile.py
However if you do want todo it the hard way:
> #SCRIPT
> # open the file and assign it to the variable "thefile"
> thefile = open("/home/banter/Desktop/mylist.py")
OK To here but....
> # read the file and assign it to the variable "read_thefile"
> read_thefile = file.read(thefile)
> # make the file's contents into a string
> string_thefile = str(read_thefile)
this should simply be
data = thefile.read()
# split that string up into a list
splitlist = data.split()
# index the list to find the placement of the word 'jobs'
it_starts = splitlist.index('jobs')
# index the list to find the placement of the ']'
OK Now its getting rather messy. Its probably easier to take a
completely different approach, something like(untested code!):
started = False
for line in file(myfile.py'):
if 'jobs' in line and not started:
jobs = []
started = True
continue
if ']' not in line and started:
jobs.append(line')
else: break
> are you getting a duplicate copy of this email?
> I am CCing
tutor at python and TOing you . . .
Yes that's the correct procedure. Use ReplyAll in your mail tool
and all should be well. (although some folks would prefer if you
just reply to the list, it's a bit of a hot topic! :-)
HTH,
Alan G.
____________________________________________________
Which email service gives you unlimited storage?
http://uk.mail.yahoo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070601/f63e182c/attachment.htm
More information about the Tutor
mailing list