[Tutor] summer_v04.py

Christopher Spears cspears2002 at yahoo.com
Wed Feb 21 03:32:30 CET 2007


I've been working on a version of a script I found in
"Programming Python".  The helpful users of this forum
gave me some advice to make the code less wordy.  Here
is the code:

#!/usr/bin/python
import string

def find_longest_line(fileName):
	line_list = [line.split() for line in open(fileName,
'r').readlines()]
	numCols = max(len(cols) for cols in line_list)
	#print numCols
	return numCols

def summer(fileName):
	length_longest_col = find_longest_line(fileName)
	sums = [0] * length_longest_col
	for line in line_list:
		cols = string.split(line)
		for i in range(len(cols)):
			sums[i] = sums[i] + float(cols[i])
	return sums
			
if __name__ == '__main__':
	import sys
	print summer(sys.argv[1])
	#print find_longest_line(sys.argv[1])
	
The code opens a file called table.txt:
1       5       10      2       1.0
2       10      20      4       2.0     3
3       15      30      8       3       2       1
4       20      40      16      4.0

Then the script adds the columns in the file together.

However, when I run the script, I get a syntax error:

io at io-station-1 ./text_proc 151> ./summer_v04.py
table.txt
  File "./summer_v04.py", line 6
    numCols = max(len(cols) for cols in line_list)
                              ^
SyntaxError: invalid syntax

I can't figure out what the error is.

-Chris


More information about the Tutor mailing list