Duncan Smith wrote: > > I need to read some data from a file. Each (tab delimited) row corresponds > to an array index eg. > > 0 0 0 0 0 0 > 0 1 0 0 0 0 > 0 0 1 0 0 0 > ... > > And I need something like, > > [[0,0,0,0,0,0], [0,1,0,0,0,0], [0,0,1,0,0,0], ...] > > What's the best way of doing this? Cheers in advance. To read the file line by line into a list: list_of_lines = open('your_file').readlines() [Check the description of the readlines() method of file objects] To make a list of columns out of each (string) line: import string list_of_columns_str = string.split(line) [Note: This way the line is split by groups of blanks, either tabs, spaces or other blanks -- check the description of the function split() of the module string. If you really need to split by tabs, you can use string.split(line, '\t') -- but then you need to discard the last '\n' character of each line...] Doing the same with conversion of the columns (strings) in the list to integers: import string list_of_columns_int = map(int, string.split(line)) Put it together: import string the_list_you_want = map(lambda line: map(int, string.split(line)), open('your_file').readlines()) This is cute but not robust against small syntax deviations. For example, if your file has blank lines, you will get empty lists in the_list_you_want, which may or may not be what you want! You feel more confortable with "unrolled" code. If so, you may write it like this: import string the_list_you_want = [] for line in open('filename').readlines(): the_list_you_want.append(map(int, string.split(line))) Sebrosa -- http://artenumerica.com/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4