Opstap¶
Canonieke uitwerking van de opstap. Pak 6_opstap.zip uit naast het notebook; de bestanden staan dan in assets/.
Opdracht 1¶
Een regel uit een tekstbestand bevat de newline nog. repr maakt dat teken zichtbaar.
with open("../problems/assets/woorden.txt") as file:
for line in file:
print(repr(line))
'appel\n'
'peer\n'
'banaan\n'
'kiwi\n'
'mango\n'
Opdracht 2¶
Tel de regels.
count = 0
with open("../problems/assets/woorden.txt") as file:
for _ in file:
count = count + 1
print(count)
assert count == 5
5
Opdracht 3¶
print krijgt de newline van de regel al mee; gebruik end="" om geen tweede newline toe te voegen.
with open("../problems/assets/woorden.txt") as file:
for line in file:
print(line, end="")
appel
peer
banaan
kiwi
mango
Opdracht 4¶
Zet elke regel om naar een getal en tel de getallen op.
total = 0
with open("../problems/assets/metingen.txt") as file:
for line in file:
total = total + int(line)
print(total)
assert total == 1393
1393
Opdracht 5¶
Bewaar het grootste getal dat je tot nu toe hebt gezien.
highest = 0
with open("../problems/assets/metingen.txt") as file:
for line in file:
measurement = int(line)
if measurement > highest:
highest = measurement
print(highest)
assert highest == 226
226
Opdracht 6¶
Schrijf tien regels en lees het bestand daarna terug.
with open("telling.txt", "w") as file:
for number in range(1, 11):
print(number, file=file)
telling = ""
with open("telling.txt") as file:
for line in file:
telling = telling + line
print(telling, end="")
assert telling == "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n"
1
2
3
4
5
6
7
8
9
10
Opdracht 7¶
Lees het ene bestand en schrijf geselecteerde regels naar het andere.
def strip_newline(line):
"""Geeft de regel terug zonder het regeleinde aan het eind."""
if len(line) > 0 and line[-1] == "\n":
return line[:-1]
return line
with open("../problems/assets/woorden.txt") as source:
with open("lang.txt", "w") as target:
for line in source:
if len(strip_newline(line)) > 4:
print(line, end="", file=target)
long_words = ""
with open("lang.txt") as file:
for line in file:
long_words = long_words + line
print(long_words, end="")
assert long_words == "appel\nbanaan\nmango\n"
appel
banaan
mango