Arvutiteaduse instituut
  1. Kursused
  2. 2022/23 sügis
  3. Programmeerimise alused (MTAT.03.236)
EN
Logi sisse

Programmeerimise alused 2022/23 sügis

  • Home
  • Grading
  • Links

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.

Homework

The deadline for homework is Thursday. So, you should start with homework already before the session.

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()

Homework 6.1 Books and authors

Write a program that reads book titles and authors from a file called books.txt and displays the information found in file. Every line in file books.txt has the name of the book, "by" and the author's name. The result should contain the author first, followed by "wrote" and then the book name. For example: Joanne Rowling wrote Harry Potter. Also, use try and except blocks to handle file opening errors.

books.txt content:

 In Search of Lost Time by Marcel Proust
 Ulysses by James Joyce
 Don Quixote by Miguel de Cervantes
 Hamlet by William Shakespeare

The output of the program should be:

>>> %Run solution.py
Marcel Proust wrote In Search of Lost Time
James Joyce wrote Ulysses
Miguel de Cervantes wrote Don Quixote
William Shakespeare wrote Hamlet

If you have been struggling with this exercise for some time, maybe you can get help from troubleshooter: https://progtugi.cs.ut.ee#/ts/623aeacaef7eaf5634394b2b/. It tries to explain the most common problems and give hints.

Homework 6.2 Messy data

Row numbers got mixed up by accident in the data.txt file. Write a program that outputs all the lines from the file with the correct line numbers. The result should change only the integers displaying the row number, the first row should be 1. and the last one equal to a total number of rows.

Content of data.txt:

 3. First
 11. Second
 7. Third
 5. Fourth

Program output should be:

>>> %Run solution.py
1. First
2. Second
3. Third
4. Fourth

If you have been struggling with this exercise for some time, maybe you can get help from troubleshooter: https://progtugi.cs.ut.ee#/ts/623aed3cef7eaf5634394b62/. It tries to explain the most common problems and give hints.

Go to Moodle and upload your solution into Homework 6.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo