fix: Verwende io.open() für bessere Encoding-Unterstützung in der get-Funktion

This commit is contained in:
2026-04-01 10:03:31 +02:00
parent 2ed4a107b9
commit c444a3f6ac

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" """
repovizcheck.py repovizcheck.py
@@ -20,6 +22,7 @@ import sys
import re import re
import os.path as p import os.path as p
import argparse import argparse
import io
print(r" ____ __ ___ ____ _ _ ") print(r" ____ __ ___ ____ _ _ ")
print(r"| _ \ ___ _ __ ___ \ \ / (_)____ / ___| |__ ___ ___| | _____ _ __ ") print(r"| _ \ ___ _ __ ___ \ \ / (_)____ / ___| |__ ___ ___| | _____ _ __ ")
@@ -57,9 +60,10 @@ if file_suffix not in perm_file_suffix:
# Funktion zum Oeffnen einer Datei mit Pruefung # Funktion zum Oeffnen einer Datei mit Pruefung
def get(name): def get(name):
'''Funktion zum Oeffnen einer Datei mit Pruefung (prüft Encoding)''' '''Funktion zum Oeffnen einer Datei mit Pruefung (prüft Encoding)'''
# io.open() wird verwendet, da es in Python 2 und 3 den encoding-Parameter unterstuetzt.
# Versuche zuerst UTF-8, lese die gesamte Datei zur Validierung. # Versuche zuerst UTF-8, lese die gesamte Datei zur Validierung.
try: try:
f = open(name, "r", encoding='utf-8') f = io.open(name, "r", encoding='utf-8')
f.read() # komplette Datei lesen, um Decode-Fehler sicher zu erkennen f.read() # komplette Datei lesen, um Decode-Fehler sicher zu erkennen
f.seek(0) f.seek(0)
return f return f
@@ -67,7 +71,7 @@ def get(name):
# UTF-8 passt nicht — versuche ISO-8859-1 # UTF-8 passt nicht — versuche ISO-8859-1
try: try:
f.close() f.close()
return open(name, "r", encoding='ISO-8859-1') return io.open(name, "r", encoding='ISO-8859-1')
except IOError: except IOError:
print("") print("")
print("The File", name, "can't be opened with fallback encoding!") print("The File", name, "can't be opened with fallback encoding!")