Arvutiteaduse instituut
  1. Kursused
  2. 2018/19 kevad
  3. Programmeerimine (LTAT.03.001)
EN
Logi sisse

Programmeerimine 2018/19 kevad

  • Home

Before session 8

Files

Watch lecture videos:

Slides in English

Textbook in English

Quiz

Go to Moodle and solve the quiz on files.

Examples

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 footlengths.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. The program prints Invalid input if the foot length cannot be converted into a number for some reason, and proceeds to the next line in the file.

def shoe_size(length):
    return round(1.5 * (length + 1.5))

ffile = open("footlengths.txt")

for foot in ffile:
    try:
        f = float(foot)
        s = shoe_size(f)
        print("Foot length:", f, "Suitable shoe size is", s)
    except:
        print("Invalid input")

ffile.close()

Example 2. Uppercase

The following program prompts the user for filename, reads the file and prints the content of the file (line by line) in uppercase. The program finishes its work nicely regardless of whether the file exists in the folder or not.

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

Exercises

1. Numbered lines

Write a program that prompts the user for filename and outputs all lines from the file, numbering them with consecutive integers. The program should finish nicely regardless of whether the file exists in the folder or not (use try-except).

For example, if we have the file names.txt with the following content:

 Jon Snow
 Arya Stark
 Tyrion Lannister
 Eddard Stark
 Melisandre

then the program should output:

 Enter filename: names.txt
 1. Jon Snow
 2. Arya Stark
 3. Tyrion Lannister
 4. Eddard Stark
 5. Melisandre

2. Taxi prices

The party ended and everybody starts to go home. The file taxiprices.txt has information about taxi prices, where each line consists of taxi name, base fee, and kilometer price, separated by commas. The program should ask for distance to home in kilometers and output the name of the cheapest taxi, according to the prices in taxi price file.

Example

Content of the file taxiprices.txt:

 Maxitaxi,2.0,0.6
 Friendshare,10,0
 Waldo takso,1.0,1.0

Output of the program:

 Enter distance in kilometers: 7
 Maxitaxi is the cheapest.

Taxi fare is computed by the formula base fee + kilometer price × distance in kilometers.

The program should not ask for filename, instead it can assume that the file taxiprices.txt exists.

Hint

>>> s = 'xx,yy,zz'.split(',')
>>> s
['xx', 'yy', 'zz']
>>> s[1]
'yy'

3. Machine translation

Write a program that prompts for two filenames. The first name belongs to an existing text file, the second name is the name of a new file that may not yet exist.

The task of the program is to take the content of the first file, replace every word "Hello" with "Hi" and write the result in the second file. On the screen it should print how many replacements were made.

Example

Content of the file source.txt:

 Hello!
 Hello Kitty
 Hello-Hello

Input and output:

 Enter source file name: source.txt
 Enter destination file name: destination.txt
 4 replacements were made.

Content of the resulting file destination.txt:

 Hi!
 Hi Kitty
 Hi-Hi

Hint

>>> 'abcabca'.count('ab')
2

Submit your solutions

Submit your solutions of exercises 1, 2, and 3 in Moodle under the names home1.py, home2.py, and home3.py.

  • 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.
Courses’i keskkonna kasutustingimused