I have to list a integers from a text file separated by newlines into a python list. I ended up with the code above which works (for my case) but certainly is far form optimal.def readIntegers(pathToFile):    f = open(pathToFile)    contents = f.read()    f.close()    tmpStr =     integers = []    for char in contents:        if char == '\r':            integers.append(int(tmpStr))            tmpStr =             continue        if char == '\n':            continue        tmpStr += char    return integersNow I have much less code, but I'm not sure for which cases split() works correctly.def readIntegers(pathToFile):    with open(pathToFile) as f:        a = [int(x) for x in f.read().split()]    return a
Reading ints line from a file in Python
python
No need for split (you can use readlines). But no need for readlines, for that matter:def read_integers(filename):    with open(filename) as f:        return map(int, f)or, if thats more to your fancy:def read_integers(filename):    with open(filename) as f:        return [int(x) for x in f]A file object is simply iterable in Python, and iterates over its lines.Note that, contrary to what I said earlier, wrapping the file object in a with block is highly recommended. Python doesnt actually guarantee (although it recommends it) that objects are disposed of automatically at the end of the scope. Worse, its not guaranteed that a file object that is collected actually closes the underlying stream.(Note that Ive adapted the method name to Python conventions.)