<jupyter_start><jupyter_text>DateienDateien sind sind sehr praktisch. Mit ihnen kann man neue Daten einlesen und abspeichern. Wie geht das eigentlich mit Python?  Eine Textdatei lesen und ihren Inhalt ausgeben<jupyter_code># Wir öffnen die Datei lesen.txt zum Lesen ("r") und speichern ihren Inhalt in die Variable file
file = open("lesen.txt", "r")

# Wir gehen alle Zeilen nacheinander durch
# In der txt-Datei stehen für uns nicht sichtbare Zeilenumbruchszeichen, durch die jeweils das Ende einer Zeile markiert ist
for line in file:
    # Eine Zeile ohne Zeilenumbruch ausgeben
    print(line.strip())
file.close()<jupyter_output>Hallo Leute.
Ich bin eine wunderschöne weitere Zeile.<jupyter_text>In eine Textdatei schreibenIn eine Textdatei zu schreiben ist fast genauso einfach wie sie zu lesen:<jupyter_code># Wir öffnen eine Datei zum Schreiben ("w": write)
file = open("schreiben.txt", "w")

students = ["Max", "Monika", "Erik", "Franziska"]

# Wir loopen mit einer for-Schleife durch die Liste students
for student in students:
    # Mit der write-Methode schreiben wir den aktuellen String student und einen Zeilenumbruch in das file-Objekt
    file.write(student + "\n")

# Abschließend müssen wir die Datei wieder schließen
file.close()<jupyter_output><empty_output><jupyter_text>Dateien öffnen mit withWenn wir Dateien mit einer with-Konstruktion öffnen, dann brauchen wir sie nicht mehr explizit mit der close()-Methode schließen.<jupyter_code>with open("lesen.txt", "r") as file:
    for line in file:
        print(line.strip())<jupyter_output>Hal<NAME>.
Ich bin eine wunderschöne weitere Zeile.<jupyter_text>CSV-Datei lesenCSV steht für comma separated values. Auch solche csv-Dateien können wir mit Python auslesen.<jupyter_code>with open("datei.csv") as file:
    for line in file:
        data = line.split(";")
        print(data[0] + ": " + data[1])<jupyter_output>Muenchen: 1800000
Berlin: 3000000
Budapest: 2000000<jupyter_text>CSV-Datei lesen (und Daten überspringen)CSV Dateien sind genauso dateien wie jede andere auch. Für sie ist es ganz z.B. ganz praktisch wenn du Zeilen überspringen kannst.<jupyter_code>with open("datei.csv") as file:
    for line in file:
        data = line.split(";")
        
        if int(data[1]) < 2000000:
            continue
        
        if data[2] == "BUD":
            continue
        
        print(data)<jupyter_output>['Berlin', '3000000', 'BER\n']<jupyter_text>Übung- Zum ersten mal können wir endlich mit einem "echten" Datensatz arbeiten!- Besorgt euch die datei https://data.stadt-zuerich.ch/dataset/pd-stapo-hundenamen/resource/8bf2127d-c354-4834-8590-9666cbd6e160- Ihr findet sie auch im Ordner 20151001_hundenamen.csv- Findet heraus wie oft der Hundename "Aaron" zwischen 2000 - 2012 gebraucht wurde.<jupyter_code>#Hinweis 1:
n = "1975"
print(int(n) < 1990)
# Hinweis 2:
jahre = ["Year", "1990", "1992"]

for jahr in jahre:
    if jahr == "Year":
        continue
    print(int(jahr))
### Euer code hier<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09661354581673307, 'fraction_numerical': 0.032204515272244355, 'mean_word_length': 4.323321554770318, 'pattern_counts': {'":': 4, '<': 24, '<?xml version=': 0, '>': 22, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '255737', 'license': 'MIT', 'n_tokens_mistral': 1142, 'n_tokens_neox': 1075, 'n_words': 325, 'path': '03 Python Teil 2/05 Dateien.ipynb', 'repo_name': 'Tamibobi/kurs_21_22', 'size': '3014'}