Reading files into a 2D list.
Klaus Alexander Seistrup
klaus at seistrup.dk
Wed May 11 06:14:25 EDT 2005
Øyvind Østlund wrote:
> I have a list of about 20 files that I want to read line by
> line into a 2D list. So the first dimension will be each file,
> and the second every line in that file.
>
> I tried to do something like this:
>
> files_and_lines = [][]
> filenumber = 0
>
> for files in file_names:
> try:
> lexi_file = open(str(sys.path[0]) + "/lexi/" + files, "r")
> files_and_lines[filenumber] = lexi_file.readlines()
> filenumber = filenumber + 1
>
> except(IOError):
> print "Something went wrong trying to read the file:"
> print "'" + str(sys.path[0]) + files + "'"
I'm not sure I understand you. Do you wish to end up with an array
like this:
#v+
[fileName0][fileLines0]
[fileName1][fileLines1]
...
[fileNameN][fileLinesN]
#v-
In that case try something like:
#v+
>>> files_and_lines = []
>>> for name in file_names:
>>> files_and_lines.append([name, open(name, 'r').readlines()])
>>> print 'Read %d files' % (len(files_and_lines),)
#v-
Add proper error checking.
At least, I think the [].append() method is what you're looking for.
Cheers,
--
Klaus Alexander Seistrup
Magnetic Ink, Copenhagen, Denmark
http://magnetic-ink.dk/
More information about the Python-list
mailing list