Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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
like image 283
Philip McQuitty Avatar asked Dec 20 '14 05:12

Philip McQuitty


People also ask

How do I read a text file line by line in Python?

Method 1: Read a File Line by Line using readlines() readlines() is used to read all the lines at a single go and then return them as each line a string element in a list. This function can be used for small files, as it reads the whole file content to the memory, then split it into separate lines.

How do I read a .TXT file in Python?

To read a text file in Python, you follow these steps: First, open a text file for reading by using the open() function. Second, read text from the text file using the file read() , readline() , or readlines() method of the file object. Third, close the file using the file close() method.

How do you read multiple lines from a text file in Python?

Method 1: fileobject.readlines() A file object can be created in Python and then readlines() method can be invoked on this object to read lines into a stream.

How do you read the next line in Python?

Python file method next() is used when a file is used as an iterator, typically in a loop, the next() method is called repeatedly. This method returns the next input line, or raises StopIteration when EOF is hit. Combining next() method with other file methods like readline() does not work right.


2 Answers

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

like image 190
Dmitry Wojciechowski Avatar answered Sep 20 '22 15:09

Dmitry Wojciechowski


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:-)

like image 29
Alex Martelli Avatar answered Sep 21 '22 15:09

Alex Martelli