Ergänzende Anmerkungen: Bei Textdateie sollte man beim öffnen immer explizit die Kodierung angeben.
In den ``with``-Block braucht man nur den Code schreiben, bei dem die Datei offen sein muss. Da Du sofort die komplette Datei in den Arbeitsspeicher liest, ist das nur diese eine Zeile in der Du das tust. Alternativ könntest Du das `readlines()` aber auch sein lassen und über `file` iterieren.
Das ``in`` sucht in der gesamten Zeichenkette und `startswith()` nur am Anfang. In der gezeigten Zeichenkette macht das ``startswith("#")`` auch aus dem Grund keinen Sinn, weil die nicht mit "#" anfängt. Durch das ``in`` würde der Code sich aber auch Zeilen wie ``Blocksize = 42 # Muss Teiler von FileSize sein!`` näher anschauen obwohl der Suchbergriff dort in einem Kommentar steht. Auch das entfernen der Kommentare ist eventuell nicht so einfach falls "#" auch in Werten vorkommen kann. Beispielsweise in URLs wie "
http://www.example.com/page.html#anchor_id" oder auch in einer Einstellung die Kommentarzeichen konfiguriert ``CommentStart = "#" # Damit fangen Kommentare an.``
Falls das ein standardisiertes Format wie beispielsweise TOML ist, sollte man einen passenden Parser verwenden. Selbst bei allgemeinen INI-Dateien würde ich erst einmal versuchen ob `conmfigparser` aus der Standardbibliothek oder das externe `ConfigObj` geeignet sein könnten.