Before session 6
Files
Watch the videos. Next two videos (part 1 and part 2) show how to open data files on your computer and read throught the files using Python.
Slides
Text-book: chapter 7 - files
Test
Go to Moodle and take the sixth test on the video lecture.
Exercises
NB! Make sure that the text files (.txt) are in the same folder as your Python code. Otherwise Python will not find the files.
Example 1. Shoe size
The file foot.txt contains data about foot lengths. The following program reads the data from the file, calculates a suitable shoe size for each foot length and prints the result out. The program prints Invalid input if the foot length cannot be converted into a number for some reason, and proceeds with the next line of the file.
def shoe_size(length): return 1.5 * (length + 1.5) ffile = open("foot.txt") for foot in ffile: try: f = float(foot) s = shoe_size(f) print("Foot length:", f, "Suitable shoe size is", round(s)) except: print("Invalid input") ffile.close()
Example 2. Upper case
The following program asks for the file name, then the program reads the file and prints the contents of the file (line by line) in the upper case. The program works nicely with all the files which exist and do not exist.
fname = input("Please enter the file name: ") try: ffile = open(fname) except: print("File cannot be opened:", fname) else: for line in ffile: print(line.strip().upper()) ffile.close()
Exercise 1. Name in URL
Write a program that reads URLs of Tartu University users' webpages from a file called urls.txt and outputs the usernames. The solution should have a function called find_name
that takes one parameter (URL) and returns the name (you can reuse the solution of the previous homework to find a user name from an URL and make it as a function). You should create the file urls.txt yourself.
If the file urls.txt contains the following lines:
http://www.ut.ee/~koit/KT/index_eng.html http://www.ut.ee/~vilo/ http://www.ut.ee/~kiho/
then the output of the program should be
koit vilo kiho
Exercise 2. Numbered lines
Write a program which prompts the user for the file name and outputs all the lines from the file with its line number. Make sure that the program works nicely with all the files which exist and do not exist (use try-except).
If the content of the file names.txt is as follows:
Jon Snow Arya Stark Tyrion Lannister Eddard Stark Melisandre
then the program output is as follows:
Enter the file name: names.txt 1. Jon Snow 2. Arya Stark 3. Tyrion Lannister 4. Eddard Stark 5. Melisandre
Go to Moodle and upload your solutions into Exercises 6.