In Python, you open a file using the built-in
open() function and passing it the path to the file you want to open. By default, files are opened as read-only.
Here's a very basic example of opening and reading a file that is the current directory:
f = open('myfile.txt') contents = f.read() print(contents)
f.read() just reads the entire file as a string into a variable. So, this will just print the entire contents of the file.
Alternatively, you might want to read the file into a list, one line at a time. You can do that with the
f = open('myfile.txt') file_as_list = f.readlines() for line in file_as_list: print(line)
The results may surprise you though. When printed, each line will be followed by two newline characters. That's because
readlines() does not strip the newline character when splitting the contents into a list. Each list item will end in a newline characters. That accounts for one of the newline character. The other newline character comes by default at the end of each call to
There are a couple of easy ways to address this:
- Explicitly pass an empty string to
endin the call to
f = open('myfile.txt') file_as_list = f.readlines() for line in file_as_list: print(line, end='')
f = open('myfile.txt') contents = f.read() file_as_list = contents.splitlines() for line in file_as_list: print(line)
splitlines()actually splits on the newline character, the newline character is not left hanging at the end of each line.