@BlackJack,
danke für die Erklärung.
Bezüglich dem C Parameter, manche C Function erwartet z. B. als Callback
einen Pointer auf eine Funktion. Kann ich dann z. B.
ctypes.pointer(clean_filename) übergeben?
Bezgl. dem clean_filename noch eine Frage.
Ich musste den Aufruf ändern in
Code: Alles auswählen
clean_filename = partial(re.sub,'[{0}]'.format(re.escape(' <>:"/\|?*')), '_')
da ansonsten nichts ersetzt wurde. Ich denke das macht Sinn, oder?
Eine andere Stelle bereitet mir ebenso noch ein Verständnisproblem.
Code: Alles auswählen
def iter_items(document):
for item in document.findall(ITEM_TAG):
yield dict(
(key, get_text(item, tag_name))
for key, tag_name in ITEM_KEY_TO_TAG_NAME.iteritems()
)
Ich habe die Doku und verschiedene Seiten zu yield gelesen aber noch immer nicht das Gefühl das
ich verstanden habe um was es da geht.
In der Funktion wird als erstes in dem "XML-Dokument" nach allen item tags gesucht,
dann wird mit dieser Liste die for Schleife durchlaufen und ein item dictionary
aufgebaut. Nur wie geschieht das wirklich und welchen Zweck erfüllt hier yield?
Mein Verständnis hierbei ist:
Es wird über das bestehende ITEM_KEY_TO_TAG_NAME dictionary iteriert und
für jeden Schlüssel und Wert
ein neues Paar Schlüssel und ermittelter Wert in das item dictionary geschrieben.
Und was macht das yield??
Danke
Claudia