Ø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/ -- http://mail.python.org/mailman/listinfo/python-list