I\'m quite new to python, though I have a lot of experience with bash. I have a file that consists of a single column of numbers, and I would like to find the largest number in
num is a string, not a number. Turn it into an integer first using int():
num = int(num)
You are comparing text, so it is ordered lexicographically, '9' > '80' because the ASCII character '9' has a higher codepoint than '8':
>>> '9' > '80'
True
After the '9' line, all other lines either have an initial digit that is smaller than '9', or the line is equal.
You could use the max() function instead, provided you first use map() to turn all lines into integers:
with open('jan14.nSets.txt','r') as data:
i = max(map(int, data))
or use a generator expression (in Python 2, more memory efficient than map()):
with open('jan14.nSets.txt','r') as data:
i = max(int(num) for num in data)
Both pull in all lines from data, map the lines to integers, and determine the maximum value from those.