On 11/21/2015 10:26 AM, BartC wrote:
On 21/11/2015 10:41, vostrus...@gmail.com wrote:
Hi,
I have a file with one parameter per line:
a1
b1
c1
a2
b2
c2
a3
b3
c3
...
The parameters are lines of characters (not numbers)
I need to load it to 2D array for further manipulations.
So far I managed to upload this file into 1D array:
ParametersRaw = []
with open(file1) as fh:
ParametersRaw = fh.readlines()
fh.close()
I tried this code based on yours:
with open("input") as fh:
lines=fh.readlines()
rows = len(lines)//3
params=[]
index=0
for row in range(rows):
params.append([lines[index],lines[index+1],lines[index+2]])
index += 3
for row in range(rows):
print (row,":",params[row])
For the exact input you gave, it produced this output:
0 : ['a1\n', 'b1\n', 'c1\n']
1 : ['a2\n', 'b2\n', 'c2\n']
2 : ['a3\n', 'b3\n', 'c3\n']
Probably you'd want to get rid of those \n characters. (I don't know
how off-hand as I'm not often write in Python.)
The last bit could also be written:
for param in params:
print (params)
but I needed the row index.
To get rid of the '\n' (lineend) characters:
with open(file1) as fh:
ParametersRaw = [line.strip() for line in fh.readlines()]
or, more succinctly..
with open(file1) as fh:
ParametersRaw = [line.strip() for line in fh]
Comprehensions are your friend.
Nathan
--
https://mail.python.org/mailman/listinfo/python-list