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
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.
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.
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.
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.
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
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:-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With