Skip to content
Snippets Groups Projects
Commit 6a8f2404 authored by Christof Kaufmann's avatar Christof Kaufmann
Browse files

Notebooks from ckaufmann/akis-python-framework@ba235902

parent 069cfd6f
No related branches found
No related tags found
No related merge requests found
Showing with 218 additions and 0 deletions
%% Cell type:markdown id:0027-314d9079db04587ab854c17966a3dd03835285377d60e35e18a85081c94 tags:
# Datei mehrfach öffnen
Probieren Sie aus, was passiert, wenn Sie eine Datei mehrfach öffnen.
Damit Sie eine Datei zum Lesen öffnen können, erzeugen Sie eben eine,
indem Sie folgenden Code ausführen:
``` python
f = open('akis.txt', 'w')
f.write('AKIS')
```
4
``` python
f.close()
```
- a\)
Versuchen Sie die Datei `akis.txt` zweimal (lesend) zu öffnen und
geben Sie den Dateiinhalt jeweils aus. Schließen Sie anschließend
die beiden Datei-Objekte.
- b\)
Versuchen Sie die Datei `akis.txt` lesend und dann schreibend zu
öffnen. Geben Sie den Dateiinhalt aus und schreiben in die Datei
etwas anderes. Schließen Sie die beiden Datei-Objekte.
- c\)
Versuchen Sie die Datei `akis.txt` zweimal schreibend zu öffnen.
Schreiben Sie verschieden Lange Strings in die Datei. Schließen Sie
zunächst das Datei-Objekt mit dem längeren String, dann das mit dem
kürzeren. Was steht in der Datei?
*Hinweis: Abhängig vom Betriebssystem kann es zu Fehlern (Exceptions)
kommen.*
## Lösung
*Hinweis: Der Code wurde in Linux ausgeführt und die Ausgaben
entsprechen dem Verhalten in Linux, wo eine Datei mehrfach geöffnet
werden kann.*
### Aufgabenteil a)
Die Datei lässt sich mehrfach lesbar öffnen und auslesen:
``` python
f = open('akis.txt')
g = open('akis.txt')
f.readline()
```
'AKIS'
``` python
g.readline()
```
'AKIS'
``` python
f.close()
g.close()
```
### Aufgabenteil b)
Die Datei lässt sich auch lesbar und schreibbar öffnen:
``` python
f = open('akis.txt')
g = open('akis.txt', 'w')
f.readline() # file emptied (truncated)
```
''
``` python
g.write('Python')
```
6
``` python
f.readline() # still empty
```
''
``` python
g.close()
f.readline() # close() writes cache to file
```
'Python'
``` python
f.close()
```
### Aufgabenteil c)
Die Datei lässt sich auch mehrfach schreibbar öffnen. Der Schreibcache
wird erst in die Datei geschrieben, wenn Sie geschlossen wird. Wir sehen
in der Datei, dass der Dateiinhalt dabei nicht entfernt wird:
``` python
f = open('akis.txt', 'w')
g = open('akis.txt', 'w')
f.write('Python')
```
6
``` python
g.write('Framework')
```
9
``` python
g.close() # write cache to file 'Framework'
f.close() # write cache to file 'Python'
```
Kontrolle, was nun in der Datei steht:
``` python
f = open('akis.txt')
f.readline()
```
'Pythonork'
``` python
f.close()
```
%% Cell type:markdown id:0006-d01067cd7fcec766812d2b13045319ad05dda499203daeade354eb46634 tags:
# Datei mehrfach öffnen
Probieren Sie aus, was passiert, wenn Sie eine Datei mehrfach öffnen.
Damit Sie eine Datei zum Lesen öffnen können, erzeugen Sie eben eine,
indem Sie folgenden Code ausführen:
``` python
f = open('akis.txt', 'w')
f.write('AKIS')
```
4
``` python
f.close()
```
- a\)
Versuchen Sie die Datei `akis.txt` zweimal (lesend) zu öffnen und
geben Sie den Dateiinhalt jeweils aus. Schließen Sie anschließend
die beiden Datei-Objekte.
- b\)
Versuchen Sie die Datei `akis.txt` lesend und dann schreibend zu
öffnen. Geben Sie den Dateiinhalt aus und schreiben in die Datei
etwas anderes. Schließen Sie die beiden Datei-Objekte.
- c\)
Versuchen Sie die Datei `akis.txt` zweimal schreibend zu öffnen.
Schreiben Sie verschieden Lange Strings in die Datei. Schließen Sie
zunächst das Datei-Objekt mit dem längeren String, dann das mit dem
kürzeren. Was steht in der Datei?
*Hinweis: Abhängig vom Betriebssystem kann es zu Fehlern (Exceptions)
kommen.*
Hier Ihr Code:
%% Cell type:code id:0007-44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tags:
```
```
File moved
File moved
File moved
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment