On Monday, November 23, 2015 at 12:58:49 PM UTC-8, Crane Ugly wrote:
> Thank you all.
> Here is the last piece of code that caused me so much troubles but now 
> working the way I wanted it: 
> 
>       fRawData = []
>       with open(fStagingFile2) as fStagingFile2FH:
>               fRawData = [line.strip() for line in 
> fStagingFile2FH.readlines()]         # #### This is to read each element from 
> the file and chop off the end of line character
>       
>       fNumberOfColumns = 7
>       fNumberOfRows = len(fRawData)/fNumberOfColumns
> 
>       fRowID = 0
>       fParameters = []
>       for fRowID in range(0, len(fRawData), fNumberOfColumns):
>               fParameters.append(fRawData[fRowID:fRowID+fNumberOfColumns])    
>  # #### This is to convert 1D array to 2D
> 
>     # #### ... and down below section is an example of how to read each 
> element of the list
>     # #### and how to update it if I need so. That was also a problem before.
>       fRowID = 0
>       fColumnID = 0
>       for fRowID in range(fNumberOfRows):
>               for fColumnID in range(fNumberOfColumns):
>                       if fColumnID == 0:
>                               fParameters[fRowID][fColumnID] = "XXXX"
>                       Message2Log("fParameters[" + str(fRowID) + "][" + 
> str(fColumnID) + "] = " + str(fParameters[fRowID][fColumnID]))
> 
> CU
> 
> On Saturday, November 21, 2015 at 4:52:35 PM UTC+1, Nathan Hilterbrand wrote:
> > 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

What is the significance of prefixing all your variables with "f"?  I've 
frequently seen people use it to signify the variable is a float, but you're 
using it for things that aren't floats.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to