Philip McQuitty
Philip McQuitty

Reputation: 1077

Read .txt file line by line in Python

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

Upvotes: 5

Views: 35651

Answers (2)

Dmitry Wojciechowski
Dmitry Wojciechowski

Reputation: 590

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

Upvotes: 9

Alex Martelli
Alex Martelli

Reputation: 882751

Simplest might be:

data = myfile.readlines()

This would work w/the rest of your code -- or, you could loop directly on myfile (inside the with:-) and you'd be getting one line at a time. Note that lines include the ending \n so you may want to .strip() them before printing &c:-)

Upvotes: 4

Related Questions