`\047` habe ich ehrlichgesagt auch noch nie gesehen, da muß man ja erst Oktalzahlen umrechnen (\x27). Satt der kryptischen Zahl kann man einfach `\'` schreiben, was man aber auch nicht macht, denn Python kennt 4 verschiedene Arten, wie man Literale Strings definiert, da ist immer eine dabei, die ohne Escapzeichen für Anführungszeichen auskommt.
file ist eher ein filename und open_file nenne ich meistens lines, weil in der Benutzung es egal ist, woher die Zeilen kommen.
Satt den gefundenen String nochmals mit split zu bearbeiten, würde man eine passende Gruppe im regulären Ausdruck definieren. Führende 0-en sind bei int egal und sogar kontraproduktiv, die wegzulöschen, wenn es tatsächlich 0 wäre.
Der Kommentar vor der Funktion schränkt die Nutzung stärker ein, als dass das die Funktion tatsächlich tut. Die Funktion sucht doch mehrere Nummern und sollte die wohl auch per `return` zurückgeben.
Code: Alles auswählen
def search_numbers(file_to_search):
numbers = []
for filename in glob.glob(file_to_search):
with open(filename, 'r', encoding='iso-8859-1') as lines:
for line in lines:
result = re.search('''dateinummer=["']([0-9]+)["']''', line)
if result:
numbers.append(int(result[1]))
break
numbers.sort()
return numbers