Read .txt file line by line in Python

Philip McQuitty picture Philip McQuitty · Dec 20, 2014 · Viewed 30.7k times · Source

My .txt file looks like this:

![enter image description here][1]

How can I read my txt file into a string object that can be printed in the same format as above?

I have tried: 
    with open ("/Users/it/Desktop/Classbook/masterClassList.txt", "r") as myfile:
    data = myfile.read()

for item in data:
    print item

This code prints every character on a new line. I need the txt file to be a string in order to call string methods, particularly 'string.startswith()'

As you can see, in my IDE console, the lines are printing with a black line of spaces in between each line of content. How can I eliminate these blank lines?

Here is my working solution:

with open ("/Users/it/Desktop/Classbook/masterClassList.txt", "r") as myfile:
    data = myfile.read()
    for line in data:
        line.rstrip()

print data

Answer

Dmitry Wojciechowski picture Dmitry Wojciechowski · Dec 20, 2014

The most memory efficient way of reading lines is:

with open ("/Users/it/Desktop/Classbook/masterClassList.txt", "r") as myfile:
    for line in myfile:
        print line

i.e. you don't need to read the entire file in to a memory, only line by line. Here is the link to python tutorial: https://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects