Jedes Mal, wenn eine Python-Datei importiert wird, die eine große Menge statischer regulärer Ausdrücke enthält, werden CPU-Zyklen ausgegeben in Speichern, um die Zeichenfolge in ihre repräsentativen Zustandsmaschinen zu kompilieren.Caching kompilierte Regex-Objekte in Python?
a = re.compile("a.*b")
b = re.compile("c.*d")
...
Frage: Ist es möglich, diese regulären Ausdrücke in einem Cache auf der Festplatte zu speichern, in einer vorkompilierte Weise auf jedem Import die regex Compilations ausführen zu vermeiden, dass?
Beiz- das Objekt einfach nicht die folgenden, verursacht Kompilierung sowieso passieren:
>>> import pickle
>>> import re
>>> x = re.compile(".*")
>>> pickle.dumps(x)
"cre\n_compile\np0\n(S'.*'\np1\nI0\ntp2\nRp3\n."
Und re
Objekte sind unmarshallable:
>>> import marshal
>>> import re
>>> x = re.compile(".*")
>>> marshal.dumps(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: unmarshallable object
Leider hat meine Anwendung (900 reguläre Ausdrücke und Zählen) dieses Problem auch. Leider sehe ich in diesem Thread keine Lösung. –