A text file can be thought of as a sequence of lines, much like a Python string can be thought of as a sequence of characters. For example, this is a sample of a text file which records mail activity from various individuals in an open source project development team:
From email@example.com Sat Jan 5 09:14:16 2008Return-Path: <firstname.lastname@example.org>Date: Sat, 5 Jan 2008 09:12:18 -0500To: email@example.comFrom: firstname.lastname@example.orgSubject: [sakai] svn commit: r39772 - content/branches/Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772...
The entire file of mail interactions is available from www.py4inf.com/code/mbox.txt and a shortened version of the file is available from www.py4inf.com/code/mbox-short.txt. These files are in a standard format for a file containing multiple mail messages. The lines which start with “From ” separate the messages and the lines which start with “From:” are part of the messages. For more information, see en.wikipedia.org/wiki/Mbox.
To break the file into lines, there is a special character that represents the “end of the line” called the newline character.
In Python, we represent the newline character as a backslash-n in string constants. Even though this looks like two characters, it is actually a single character. When we look at the variable by entering “stuff” in the interpreter, it shows us the \n in the string, but when we use print to show the string, we see the string broken into two lines by the newline character.
>>> stuff = 'Hello\nWorld!'>>> stuff'Hello\nWorld!'>>> print stuffHelloWorld!>>> stuff = 'X\nY'>>> print stuffXY>>> len(stuff)3
You can also see that the length of the string 'X\nY' is three characters because the newline character is a single character.
So when we look at the lines in a file, we need to imagine that there is a special invisible character at the end of each line that marks the end of the line called the newline.
So the newline character separates the characters in the file into lines.