On 18 August 2010 17:14, nitin chandra <nitinchand...@gmail.com> wrote: > I am on Python 2.6 > <snipped a whole lot of text>
> Please guide with the syntax. All beginners tutorials on the web teach the syntax of python.. I am unsure what your questions is. > below is the existing program with Formula A (Mean). Formula B will be > Extrapolation, > also I have not been able to do justice to 'except IOError:' part.The It has many errors which need fixing but.. > program ends with an error. And if you get an error always make sure you provide it to this list. People on this list can not read minds ;-). > ******************************** > import sys,os, fileinput > > > file11 = raw_input('Enter PR1 File name :') > fp1 = open(file11,'r') > > file12 = raw_input('Enter PR3 File Name :') > fp2 = open(file12,'r') > > file3 = raw_input('Enter PR2 / PR4 OUTPUT File Name :') > fp3 = open(file3,'w') What happens when you enter a wrong filename? It will raise IOError the moment you use open(). Below is 1 example of what you might want tot do. file11 = raw_input('Enter PR1 File name :') try: fp1 = open(ffile11, 'r') except IOError: sys.exit('Could not open file: %s' % file11) > while True: > try: > line1A = fp1.readline() You can read and split the line in 1 go. line1 = fp1.readline().split(",") > line1B = fp2.readline() > line1 = line1A.split(",") You can now remove the above, see earlier comment. > col1 = line1[0] > col2 = line1[1] > col3 = line1[2] > col4 = line1[3] > col5 = line1[20] > col6 = line1[21] > col7 = line1[22] > line2 = line1B.split(",") > col8 = line2[1] > col9 = line2[2] > col10 = line2[3] > col11 = line2[20] > col12 = line2[21] > col13 = line2[22] Above you create a list "line1 = fp1.readline().split(",")". Lists are mutable so you can add, remove and insert new items. You can also access the items in the list by index. You can even add 2 lists to make a new list, eg: . >>> [1,2,3,4,5] + [6,7,8,9,0] [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] Now try and apply this to all your col<num> variables. > # calculation of PR2 as per formula > #(A+B)/2 , ie. Mean of the two values > col14 = ( (float(col2)) + (float(col8)) / 2) You can write this as: col14 = (float(line1[1])) + (float(line2[1])) / 2) And avoid creating all these col variables. But what would happen if col2/line1[1] has a value of "I am not a number"? Do note the comment below on the actual calculation. > col15 = ( (float(col3)) + (float(col9)) / 2) <snipped some more> > col19 = ( (float(col7)) + (float(col13)) / 2) Your "mean" calculation is wrong (hint, division has precedence over adding). Greets Sander _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor