lehrkraefte:ks:teaching:informatik-glf26

This is an old revision of the document!


Ziele

  • Analysen, welche durchgeführt werden, sind definiert und festgehalten.
  • Bericht in erster Version ist angelegt (z.B. Gliederung)

Aufträge

  • Analysen definieren (z.B. nach Wochentag, Ferien vs. Schule, Zeiten von Hobbies, Stundenplan, etc.)
  • Analysen in Excel durchführen, basierend auf letzter Woche, allenfalls weitere Spalten hinzufügen, hilfreiche Funktionen können sein:

Bericht

Der Bericht soll im Minimum folgende Aspekte enthalten:

  • Kurzer Abschnitt zur Beschaffung und Aufbereitung der Daten.
  • Überblick über die Daten (was wurde verwendet, wie viele Daten sind es, etc.)
  • Dokumentation der eigenen Analysen mit Tabellen und oder Grafiken, welche die definierten Fragen beantwortet. Eigene Idee bei der Analyse erhalten mehr Punkte.
  • Einen Abschnitt, welcher die Rolle von Social Media, deren Nutzung und möglichen Konsequenzen bespricht. Dieser kann sich entweder auf den Film The Social Dilemma, aktuelle Entwicklungen wie z.B. Beitrag von SRF zum Sucht-Prozess, einem Beitrag der RSI oder NZZ-Artikel mit Alternativen Möglichkeiten beziehen.

Zellformatierung

Zellformatierung in Excel: Prozent und Uhrzeit

Excel speichert Zahlen oft ganz anders, als sie uns auf dem Bildschirm angezeigt werden. In dieser kurzen Lektion findet ihr durch Ausprobieren selbst heraus, wie Excel intern mit Prozenten und Uhrzeiten rechnet. Tipp: Speichere dein Dokument regelmässig und nutze bei Bedarf Strg+Z (Rückgängig)!

Teil 1: Prozentdarstellung

Trage in einem leeren Arbeitsblatt in die Zellen A1 bis A3 die Werte 1, 0.5 und 25 ein. Markiert diese drei Zellen und klickt im Reiter Start auf das %-Symbol (alternativ: Rechtsklick → Zellen formatieren…Prozent).

Beobachtet das Ergebnis: Aus der 1 wird plötzlich 100%, aus 0.5 wird 50% und aus der 25 wird 2500%.

Frage: Welche Dezimalzahl musst du in eine leere Zelle eintippen, wenn du nach dem Klick auf das Prozent-Symbol exakt 25% dort stehen haben wollt? Bitte ausprobieren!

Teil 2: Wie Excel die Zeit misst

Uhrzeiten speichert Excel nicht als Stunden und Minuten, sondern als Bruchteil eines ganzen Tages. Trage dazu in eine leere Spalte die Dezimalzahlen 0, 0.5, 0.75 und 1.25 untereinander ein. Markiere die Zellen, wählt über Rechtsklick → Zellen formatieren… die Kategorie Uhrzeit und entscheide dich für ein Format, das Stunden und Minuten anzeigt (z. B. 13:30).

Das Ergebnis offenbart das interne System: 0 ist Mitternacht (00:00), 0.5 ist exakt ein halber Tag (12:00), 0.75 ist 18:00 Uhr und 1.25 springt sogar auf 06:00 Uhr am nächsten Tag.

Frage: Trage die aktuelle Uhrzeit (z.B. 14:30) in eine neue, unformatierte Zelle ein. Ändere das Format dieser Zelle über das Dropdown-Menü im Reiter Start nun zurück auf Standard. Welche Dezimalzahl kommt zum Vorschein und wie lässt sich dieser Wert mathematisch herleiten?

Frage: Wie könnte entsprechend die Zeit um eine definierte Anzahl Stunden umgerechnet werden (Zeitzonen)?

Lösung für Excel

Lösung für Excel

+9/24

Ziele

  • Daten sind ergänzt um Spalten Wochentag, Stunde (Uhrzeit) und Wochenende.
  • Jede/r hat mehrere Analysen im Kopf, welche sie/er mit Pivot-Tabellen und/oder Filtern beantworten kann.
  • Erste Analysen sind in Excel durchgeführt, dokumentiert und gespeichert.

Aufträge

  • Excel-Shortcuts durcharbeiten. Arbeiten mit Shortcuts macht arbeiten mit Excel unglaublich viel schneller.
  • Untenstehende Excel-Funktionen nachlesen resp. ausprobieren:
  • Einführungsvideo zur Datenanalyse mit Pivot-Tabellen und Filtern schauen. Achtung: Im Video werden YouTube-Daten verwendet, deshalb die Referenz zu “Video schauen”
  • Erste Analyse der eigenen Daten durchführen, z.B.: Wann (welche Stunde) like ich am meisten Beiträge?
  • Dokumentation ist ergänzt um “Was sind Pivottabellen”? Wie funktioniert die Funktion “WOCHENTAG”?

Knaus' Best-of-(Excel-)Shortcuts

Alle Excel-Shortcuts finden sich in dieser Liste. Die Shortcuts bis und mit F1 funktionieren bei den meisten gängingen (Office) Applikationen.

Shortcut Beschreibung
Ctrl+Pfeil Bewegt den Cursor ans Ende des Blocks der aktiven Zelle in Richtung des Pfeils
Shift+Pfeil Markiert die Zellen in Richtung des Pfeils
Shift+Ctrl+Pfeil Markiert die Zellen in Richtungs des Pfeils bis Ende des Blocks
Ctrl+Z Letzter Schritt rückgängig machen
Ctrl+Y Letzer Schritt wiederholen (z.B. Formatierung)
F1 Hilfe
F2 Zeigt die Abhängikeiten einer Formel in der aktiven Zelle graphisch an
F4 Fixiert Zeile und Spalte, Zeile und Spalte bei erneutem Drücken
F9 Berechnet ein Arbeitsblatt neu (inkl. neuer Zufallszahl)
Ctrl+PgDn/PgUp Wechselt nach rechts/links durch die Arbeitsblätter
Ctrl+- Markierte Zeile/Spalte löschen
Ctrl++ Zeile/Spalte einfügen

Ziele

  • Daten (aus Instagram, Spotify, Discord, etc.) sind in Excel aufbereitet (inkl. Datum).
  • Grundlegende Funktionen von Excel sind klar.
  • Dokumentation ist ergänzt (wo nötig).

Aufträge

  • Einführungsvideo Excel schauen. Stelle sicher, dass klar ist, wie
    • die oberste Zeile fixiert werden kann,
    • Zellbezüge funktionieren (z.B. =A1+A2),
    • Filter funktionieren,
    • Formeln eingegeben werden können,
    • Formeln kopiert werden können,
    • CSV, falls nicht korrekt angezeigt, in Excel “importiert” werden können (“Text in Spalten”).
  • Multiplikationstabelle aus Video nachbauen
  • Fülle ein Tabellenblatt mit zufälligem Inhalt zwischen A:F und 1:100
    • Lösche einzelne, zufällige Zellen aus dem Zellenblock oben
    • Platziere die Maus / aktiviere eine Zelle im Block und probiere die Shortcuts CTRL-Pfeilab sowie CTRL-Pfeilauf und -link und -rechts aus. Was passiert?
    • Ergänze die Tastenkombination oben mit Shift, d.h., nutze Shift-CTRL-Pfeilab etc. Was passiert?
  • Erstelle die gleiche Multiplikationstabelle von 1 bis 10, ausschliesslich mit der Tastastur, ohne die Maus zu verwenden.
  • Lies nach (oder befrage die KI) wie ein Datumsstring (wie er in deiner CSV-Datei vorliegt, im sog. *ISO*-Format) in ein Excel-Format umgewandelt werden kann, inkl. Zeit. Wandle dann das Datum aus deinen Daten in ein Datum (Spalte A) und Zeit (Spalte B) um.
  • Dokumentation: Unterscheid CSV und Excel-Datei ist notiert, Zellreferenzen und Filter sind erklärt, die wichtigsten Tastaturshortcuts sind ebenfalls angefügt.
  • Falls noch Zeit: “The Truman Show” recherchieren, der Film, welcher in “The Social Dilemma” referenziert wird.

Codes

Für Discord Daten

Für Discord Daten

discord_analyse_v2.py
import json
import csv
from pathlib import Path
from datetime import datetime
 
# --- CONFIGURATION ---
BASE_PATH = 'C:/temp/discord/'
OUTPUT_FILENAME = 'output_timestamps_clean.csv'
 
def standardize_timestamp(ts_string):
    """Converts varying timestamp formats into a standard YYYY-MM-DD HH:MM:SS format."""
    if not ts_string:
        return None
 
    # Format 1: "02.06.2021 06:26"
    try:
        dt = datetime.strptime(ts_string, "%d.%m.%Y %H:%M")
        return dt.strftime("%Y-%m-%d %H:%M:%S")
    except ValueError:
        pass
 
    # Format 2: "2021-02-17T20:35:29.083Z" (ISO 8601)
    try:
        dt = datetime.strptime(ts_string.replace("\"","")[:19].replace('T', ' '), "%Y-%m-%d %H:%M:%S")
 
        #dt = datetime.fromisoformat(ts_string[:17].replace('T', ' '))
        return dt.strftime("%Y-%m-%d %H:%M:%S")
    except ValueError:
        pass
 
    # Fallback: return original string if it matches neither format
    return ts_string
 
def process_file(file_path, writer):
    """Attempts to read a file as standard JSON, falls back to JSON Lines if needed."""
    with open(file_path, 'r', encoding='utf-8') as f:
        try:
            # Attempt 1: Standard JSON
            data = json.load(f)
            records = data if isinstance(data, list) else [data]
 
            for entry in records:
                if isinstance(entry, dict):
                    # Check both capitalization variants just in case
                    raw_ts = entry.get('Timestamp') or entry.get('timestamp')
                    if raw_ts:
                        clean_ts = standardize_timestamp(raw_ts)
                        writer.writerow([clean_ts, file_path.name])
            return 
 
        except json.JSONDecodeError:
            pass 
 
        # Attempt 2: JSON Lines
        f.seek(0) 
 
        for line in f:
            line = line.strip()
            if not line:
                continue
 
            try:
                entry = json.loads(line)
                records = entry if isinstance(entry, list) else [entry]
 
                for rec in records:
                    if isinstance(rec, dict):
                        raw_ts = rec.get('Timestamp') or rec.get('timestamp')
                        if raw_ts:
                            clean_ts = standardize_timestamp(raw_ts)
                            writer.writerow([clean_ts, file_path.name])
 
            except json.JSONDecodeError:
                pass
 
def extract_and_format_timestamps():
    work_dir = Path(BASE_PATH)
    output_path = work_dir / OUTPUT_FILENAME
 
    with open(output_path, 'w', newline='', encoding='utf-8') as csv_out:
        writer = csv.writer(csv_out)
        writer.writerow(['Timestamp', 'Filename'])
 
        print(f"Scanning: {work_dir}")
        print(f"Output will be saved to: {output_path}")
 
        for file_path in work_dir.glob('**/*.json'):
            if file_path.name == OUTPUT_FILENAME:
                continue
 
            try:
                process_file(file_path, writer)
            except Exception as e:
                print(f"Error reading file {file_path.name}: {e}")
 
    print("Done!")
 
if __name__ == "__main__":
    extract_and_format_timestamps()

Ziele

  • Instagram-Daten (oder andere, wie Spotify, Discord, etc.) sind als CSV aufbereitet.
  • CSV-Datei kann geöffnet und interpretiert werden
  • Dokumentation ist angelegt.

Aufträge

  • Den passenden Code in VisualStudio Code kopieren, den Pfad anpassen und dann ausführen. Im Anschluss, überprüfen, ob die CSV-Datei vorliegt und diese Inhalte hat.
  • CSV-Datei speichern und für nächstes Mal bereithalten.
  • Untersuche die CSV-Datei und halte fest, welche Informationen diese enthält.
  • Dokumenation: Erklären, was der Code macht, allenfalls unter Zuhilfenahme von KI.

Codes

Die untenstehende Codes dienen alle zur Aufbereitung der Daten in eine CSV-Datei. Bei allen Codes müssen die Pfade auf den eigenen Ordner angepasst werden, ebenso muss der Pfad zur CSV-Datei angepasst werden.

Die Codes für Spotify und Discord sind weniger “didaktisch”, das heisst, die sind komplizierter dafür professioneller geschrieben und weniger leicht zu verstehen. Wer möchte, kann sich entlang der Kommentare im Instagramm-Code vertiefen und gerne Fragen mit der Lehrperson besprechen.

Spotify

Für Spotify-Daten

Für Spotify-Daten

spotify_analyse.py
import json
import csv
from pathlib import Path
 
# --- CONFIGURATION ---
# Replace this with the path to your folder.
# The script will read JSONs from here AND save the CSV.
BASE_PATH = 'C:/temp/spotify/'  # <-- Change this to your actual folder path
OUTPUT_FILENAME = 'C:/temp/spotify_history.csv'
DELIM = ';'  # Delimiter for CSV, change if needed
 
 
def spotify_json_to_csv():
    # Create a Path object from the global variable
    work_dir = Path(BASE_PATH)
    output_path = OUTPUT_FILENAME
 
    # Open the CSV file for writing
    with open(output_path, 'w', newline='', encoding='utf-8') as csv_out:
        writer = csv.writer(csv_out, delimiter=DELIM)
 
        # Write the header row with the new column
        writer.writerow(['Timestamp', 'Song Title', 'Artist', 'ms_played'])
 
        print(f"Scanning: {work_dir}")
        print(f"Output will be saved to: {output_path}")
 
        # Walk through all JSON files in the directory
        for file_path in work_dir.glob('**/*.json'):
            # Skip the output file itself if it already exists to avoid errors
            if file_path.name == OUTPUT_FILENAME:
                continue
 
            try:
                with open(file_path, 'r', encoding='utf-8') as f:
                    data = json.load(f)
                    print(
                        f"Processing: {file_path.name} with {len(data)} entries")
                    if isinstance(data, list):
                        for entry in data:
                            timestamp = entry.get('ts')
                            song = entry.get('master_metadata_track_name')
                            artist = entry.get(
                                'master_metadata_album_artist_name')
                            ms_played = entry.get('ms_played', 0)
 
                            # Write row only if we have a valid song title
                            if song:
                                writer.writerow(
                                    [timestamp, song, artist, ms_played])
 
            except json.JSONDecodeError:
                print(f"Warning: Could not decode {file_path.name}")
            except Exception as e:
                print(f"Error processing {file_path.name}: {e}")
 
    print("Done!")
 
 
if __name__ == "__main__":
    spotify_json_to_csv()
Discord

Für Discord Daten

Für Discord Daten

discord_analyse.py
import json
import csv
from pathlib import Path
 
# --- CONFIGURATION ---
# Replace this with the path to your folder.
# The script will read JSONs from here AND save the CSV here.
BASE_PATH = 'C:/temp/discord/'
OUTPUT_FILENAME = 'C:/temp/output_timestamps.csv'
DELIM = ';'  # Delimiter for CSV, change if needed
 
def json_to_csv():
    # Create a Path object from the global variable
    work_dir = Path(BASE_PATH)
    output_path = OUTPUT_FILENAME
 
    # Open the CSV file for writing
    with open(output_path, 'w', newline='', encoding='utf-8') as csv_out:
        writer = csv.writer(csv_out,delimiter=DELIM)
 
        # Write the header row
        writer.writerow(['Timestamp', 'Filename'])
 
        print(f"Scanning: {work_dir}")
        print(f"Output will be saved to: {output_path}")
 
        # Walk through all JSON files
        for file_path in work_dir.glob('**/*.json'):
            try:
                with open(file_path, 'r', encoding='utf-8') as f:
                    data = json.load(f)
 
                    # Ensure the structure is a list
                    if isinstance(data, list):
                        for entry in data:
                            timestamp = entry.get('Timestamp')
 
                            # Write row only if timestamp exists
                            if timestamp:
                                writer.writerow([timestamp, file_path.name])
 
            except json.JSONDecodeError:
                print(f"Warning: Could not decode {file_path.name}")
            except Exception as e:
                print(f"Error processing {file_path.name}: {e}")
 
    print("Done!")
 
if __name__ == "__main__":
    json_to_csv()
Instagram

Für Daten im Format März 27, 2023 9:34 pm

Für Daten im Format März 27, 2023 9:34 pm

insta_analyse_deutsch.py
# -*- coding: utf-8 -*-
import re        # Regular Expressions
import datetime  # Datum/Zeit
import os        # Files suchen
 
# Erklärungen zu diesem Code sind bei der Lehrperson erhältlich. Es ist nicht nötig, diesen Code zu verstehen, um die Aufgabe zu lösen. Es könnte aber interessant sein, sich damit zu beschäftigen.
 
rootdir = 'C:/ordner/wo/alles/liegt/'
pathtocsv = 'C:/order/wo/das/resultat/sein/soll/dateiname.csv'
mnum = {
    "Januar": 1, "Februar": 2, "März": 3, "April": 4, "Mai": 5, "Juni": 6,
    "Juli": 7, "August": 8, "September": 9, "Oktober": 10, "November": 11, "Dezember": 12
}
 
# Resultat, das am Schluss geschrieben werden soll
csv = ""   # Comma separated values
# Wie viele Kontrollausgaben?
debug = 10
 
# Alle HTML-Dateien im Verzeichnis anzeigen
for root, dirs, files in os.walk(rootdir):
    for file in files:
        if file.endswith(".html"):
            filepath = os.path.join(root, file)
            # Datei oeffnen
            f = open(filepath, "r", encoding="utf8")
            html = f.read()  # Alles einlesen
            f.close()        # Datei schliessen
 
            # Datum der Form Apr. 08, 2021 8:54 am einlesen
            # Alle nötigen Angaben werden in Klammern "ge-captured"
            daten = re.findall(
                "([A-Z][a-zä]+) (\d{1,2}), (\d{4}) (\d{1,2}):(\d{1,2}) ([ap]m)", html)
 
            if (debug > 0):
                print(file, ": ", len(daten))
                debug -= 1
 
            # Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag
            for d in daten:
                # Einträge in Zahlen umwandeln
                # Monat plus die anderen Einträge (ohne AM/PM) in Zahlen umgewandelt
                #   Die Zeichenkette "42" ist nicht das gleiche wie die Zahl 42.
                e = [mnum[d[0]]] + [int(x) for x in d[1:-1]]
                # Nachmittag? Plus 12 Stunden (Ausser Mitternacht = 0)
                if d[5] == "pm":
                    e[3] = (e[3]+12) % 24
                if debug > 0:
                    # Ausgabe zur Kontrolle, sollte folgendes Format Produzieren
                    print(e)  # [1, 6, 2021, 21, 23, 12]
                    debug -= 1  # Um 1 vermindern
 
                # Datum daraus generieren (macht die Datumsmanipulation einfacher).
                # Jahr, Monat, Tag, Stunde, Minute, Sekunde
                datum = datetime.datetime(e[2], e[0], e[1], e[3], e[4], 0)
 
                if debug > 0:
                    # Ausgabe zur Kontrolle, produziert folgendes Format
                    print(datum)   # 2021-01-06 21:23:12
                    debug -= 1  # Um 1 vermindern
 
                # Wochentag (Mo=0, Di=1, ..., So=6)
                # Sämtliche Methoden für datetime-Objekte sind hier beschrieben: https://docs.python.org/3/library/datetime.html#datetime-objects
                wday = datum.weekday()
 
                # Formatierte Ausgabe des Datums, siehe https://www.w3schools.com/python/python_datetime.asp
                # \n heisst neue Zeile.
                # Das Format soll so angepasst werden, damit die Tabellenkalkulation dann damit umgehen kann.
                csv += datum.strftime("%Y-%m-%d %H:%M:%S;" + os.path.splitext(file)[0]+"\n")
 
        # Ausgabe in Datei schreiben
        f = open(pathtocsv, "w")
        f.write(csv)
        f.close()

Für Daten im Format Jun 27, 2023 9:34 pm

Für Daten im Format Jun 27, 2023 9:34 pm

insta_analyse_english.py
import re        # Regular Expressions
import datetime  # Datum/Zeit
import os        # Files suchen
 
# Erklärungen zu diesem Code sind bei der Lehrperson erhältlich. Es ist nicht nötig, diesen Code zu verstehen, um die Aufgabe zu lösen. Es könnte aber interessant sein, sich damit zu beschäftigen.
 
rootdir = 'C:/ordner/wo/alles/liegt/'
pathtocsv = 'C:/order/wo/das/resultat/sein/soll/dateiname.csv'
mnum = {"Jan": 1, "Feb": 2, "Mar": 3, "Apr": 4, "May": 5, "Jun": 6,
        "Jul": 7, "Aug": 8, "Sep": 9, "Oct": 10, "Nov": 11, "Dec": 12}
 
# Resultat, das am Schluss geschrieben werden soll
csv = ""   # Comma separated values
# Wie viele Kontrollausgaben?
debug = 10
 
# Alle HTML-Dateien im Verzeichnis anzeigen
for root, dirs, files in os.walk(rootdir):
    for file in files:
        if file.endswith(".html"):
            filepath = os.path.join(root, file)
            # Datei oeffnen
            f = open(filepath, "r", encoding="utf8")
            html = f.read()  # Alles einlesen
            f.close()        # Datei schliessen
 
            # Datum der Form Apr. 08, 2021 8:54 am einlesen
            # Alle nötigen Angaben werden in Klammern "ge-captured"
            daten = re.findall(
                "([A-Z][a-z][a-z])\.? (\d{1,2}), (\d{4}) (\d{1,2}):(\d{1,2}) ([ap]m)", html)
 
            if (debug > 0):
                print(file, ": ", len(daten))
                debug -= 1
 
            # Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag
            for d in daten:
                # Einträge in Zahlen umwandeln
                # Monat plus die anderen Einträge (ohne AM/PM) in Zahlen umgewandelt
                #   Die Zeichenkette "42" ist nicht das gleiche wie die Zahl 42.
                e = [mnum[d[0]]] + [int(x) for x in d[1:-1]]
                # Nachmittag? Plus 12 Stunden (Ausser Mitternacht = 0)
                if d[5] == "pm":
                    e[3] = (e[3]+12) % 24
                if debug > 0:
                    # Ausgabe zur Kontrolle, sollte folgendes Format Produzieren
                    print(e)  # [1, 6, 2021, 21, 23, 12]
                    debug -= 1  # Um 1 vermindern
 
                # Datum daraus generieren (macht die Datumsmanipulation einfacher).
                # Jahr, Monat, Tag, Stunde, Minute, Sekunde
                datum = datetime.datetime(e[2], e[0], e[1], e[3], e[4], 0)
 
                if debug > 0:
                    # Ausgabe zur Kontrolle, produziert folgendes Format
                    print(datum)   # 2021-01-06 21:23:12
                    debug -= 1  # Um 1 vermindern
 
                # Wochentag (Mo=0, Di=1, ..., So=6)
                # Sämtliche Methoden für datetime-Objekte sind hier beschrieben: https://docs.python.org/3/library/datetime.html#datetime-objects
                wday = datum.weekday()
 
                # Formatierte Ausgabe des Datums, siehe https://www.w3schools.com/python/python_datetime.asp
                # \n heisst neue Zeile.
                # Das Format soll so angepasst werden, damit die Tabellenkalkulation dann damit umgehen kann.
                csv += datum.strftime("%Y-%m-%d %H:%M:%S;" + os.path.splitext(file)[0]+"\n")
 
        # Ausgabe in Datei schreiben
        f = open(pathtocsv, "w")
        f.write(csv)
        f.close()

Ziele

  • Instagram-Daten sind heruntergeladen und in einen Ordner extrahiert (entpackt).
  • Python-Testprogramm läuft bei allen.
  • Dokumentation ist angelegt.

Aufträge

  • Python-Check-Up:
    • Das Programm unten auf den gewählten Ordner anpassen, laufen lassen und die Gesamtdateigrösse in Forms kopieren.
    • Dateigrösse in Bytes in Forms notieren (siehe unten).
  • Instagramm-Daten:
    • Jede/r lädt die Instagram-Daten (als HTML) herunter.
    • Ordner erstellen und ZIP-Datei darin entpacken.
    • Ein Datum (z.B. Apr 20, 2023 10:13 am) aus den Instagram-Daten (z.B. aus den Likes) lesen und auf Forms posten (mit anderen Informationen oben)
  • Datei-Endungen einblenden: Oft ist es einfach, wenn man von Dateien die Erweiterung kennt. Blende diese ein, siehe z.B. diese Anleitung
  • Dokumentation: Füge den Begriff CSV an: Lege dazu eine Datei in Excel an, speichere diese als CSV und betrachte sie nachher mit einem Texteditor, d.h., rechts klicken und öffnen. Editiere die Datei und öffne sie erneut in Excel. Erkläre in eigenen Worten was eine CSV-Datei ist. Geht das auch mit einer Datei, welche du als Excel-Datei (Erweiterung XLSX) speichert?

Click to display ⇲

Click to hide ⇱

insta_analyse.py
import os
 
# --- Programm um alle Dateien zu durchlaufen---
# Pfad anpassen
folder_to_check = 'C:/ordner/wo/alles/liegt/' #Achtung: Forward slashes oder ein r vor dem String
 
def get_directory_size(start_path):
    total_size = 0
 
    # os.walk() generates the file names in a directory tree
    # It yields a 3-tuple (dirpath, dirnames, filenames)
    for dirpath, dirnames, filenames in os.walk(start_path):
        for f in filenames:
            # Join the directory path and file name to get the full path
            fp = os.path.join(dirpath, f)
            print(fp)
            # Skip if it is a symbolic link (optional, but good practice)
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)
 
    return total_size
 
 
 
print(f"Berechne Grösse für: {os.path.abspath(folder_to_check)}")
 
size_in_bytes = get_directory_size(folder_to_check)
 
# Convert to Megabytes for easier reading
size_in_mb = size_in_bytes / (1024 * 1024)
 
print(f"Gesamtgrösse: {size_in_bytes} bytes")
print(f"Gesamtgrösse: {size_in_mb:.2f} MB")
Begriff Eintrag
CSV Dokumentiere, was CSV, wie es angezeigt und bearbeitet werden kann. Erstelle eine CSV-Datei mit Notepad und betrachte sie in Excel.
  • lehrkraefte/ks/teaching/informatik-glf26.1773899178.txt.gz
  • Last modified: 2026/03/19 05:46
  • by Simon Knaus