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
|
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!")
|
||||||
|
|||||||
Reference in New Issue
Block a user