fix: Verwende io.open() für bessere Encoding-Unterstützung in der get-Funktion
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
repovizcheck.py
|
||||
|
||||
@@ -20,6 +22,7 @@ import sys
|
||||
import re
|
||||
import os.path as p
|
||||
import argparse
|
||||
import io
|
||||
|
||||
print(r" ____ __ ___ ____ _ _ ")
|
||||
print(r"| _ \ ___ _ __ ___ \ \ / (_)____ / ___| |__ ___ ___| | _____ _ __ ")
|
||||
@@ -57,9 +60,10 @@ if file_suffix not in perm_file_suffix:
|
||||
# Funktion zum Oeffnen einer Datei mit Pruefung
|
||||
def get(name):
|
||||
'''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.
|
||||
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.seek(0)
|
||||
return f
|
||||
@@ -67,7 +71,7 @@ def get(name):
|
||||
# UTF-8 passt nicht — versuche ISO-8859-1
|
||||
try:
|
||||
f.close()
|
||||
return open(name, "r", encoding='ISO-8859-1')
|
||||
return io.open(name, "r", encoding='ISO-8859-1')
|
||||
except IOError:
|
||||
print("")
|
||||
print("The File", name, "can't be opened with fallback encoding!")
|
||||
|
||||
Reference in New Issue
Block a user