Last Week Looping though lists Looping using range While loops
This Week Special characters in strings Files – what are they? Opening and closing files Reading and writing to files Comma Separated Files
Invisible Characters How do we indicate a tab, newline or ‘ or “ inside a string? \ttab\”double quote \nnew line \’single quote\\backslash These are called escape sequences. print(“This string has a \n newline and a \t tab.” This string has a newline and a tab.
Files Files – what are they? –Can think of as a collection of stored information –Computer thinks as a sequence of bits possible arranged in characters Files have names: –my_python.py, homework.txt, etc. What can we do with a file? –Read from a file and write to a file
Opening Files How do we open a file in Python? import io myfile = open(‘story.txt’, ‘r’) Open is the Python function Story.txt is the name of the file to be opened myfile is a variable that is assigned the file object (also called stream or reader). ‘r’ is a string indicating that we will do with the file (read, write, append)
Using Files After we are finished with a file we must close it: myfile.close() When we write to a file, we have two choices: Write: myfile = open(‘filename’, ‘w’) Append: myfile = open(‘filename’, ‘a’) write replaces the file filename append appends to the file filename
Reading Files There are many ways to read from a file. 1.Using a for loop: myfile = open(‘filename’, ‘r’) for line in myfile: 2.Read the whole file at once into a list of strings: myfile = open(‘filename’, ‘r’) list_of_lines = myfile.readlines()
Reading Files 3.Read the entire file into a string: myfile = open(‘filename’, ‘r’) s = myfile.read() 4.Read a specific number of characters: myfile = open(‘filename’, ‘r’) s = myfile.read(10) reads 10 characters s = myfile.read(10) reads then next 10 characters
Reading Files 5.Read one line at a time: myfile = open(‘filename’, ‘r’) line = myfile.readline() reads a line line = myfile.readline() reads the next line
End Of File (EOF) How do we know when we reach the end of the file? This method automatically recognizes EOF. for line in myfile: Here we have to check for the end of file: line = myfile.readline() reads the next line and s = myfile.read(10) reads 10 characters The EOF character is the empty string “”.
Writing to a file First open the file for writing or appending: myfile = open(‘story.txt’, ‘w’) start the story myfile = open(‘story.txt’, ‘a’) continue the story Then write to the file: myfile.write(‘Once upon a time…’) myfile.write(‘The end.’) Then close the file: myfile.close()
Reading from a CSV file Often we have comma-separated values data files: First Name, Last Name, Utorid Anna, Bretscher, bretsche Joe, Johnson, johnsonj Sally, Jordan, jordansa Why do we like CSV files? –Spreadsheet applications like excel understand it –Many other programming languages also understand them –Easy to generate ourselves
Reading from a CSV file How do we read comma-separated values data files: import io import csv csv_file = open(‘csv_filename.csv’, ‘r’) reader = csv.reader(csv_file) … for line in reader: # read like an ordinary file # but line is a list