eine tempfile ist ja auch eine offener fd, oder?
Gibt es vielleicht eine Möglichkeit folgendes zu tun:
Code: Alles auswählen
# im grunde steht hier der algorithmus
# das Problem, da ich ab und an tempfiles einbauen will, benötige ich hier eine offene Datei
def mach_irgendwas(file):
for line in file:
wichtiger vorgang
# Nun hab ich auch andere Dateien, welche "Normal" sind
def mach_irgendwas2(path):
file = open()
# genau das selbe wie oben
for line in file:
wichtiger vorgang
file.close()
Kann man das so vereinfachen, dass ich nicht 2 Fubnktionen brauche?
Mir fiele nur ein vor dem eigentlichen Schleifen durchlauf zu prüfen ob ich mit einem String oder Filedeskriptor zu tun habe und dann das open bei Bedarf einzufügen.
Ist aber auch hässlich.
Andererseits könnte ich einfach alle Dateien offen halten, dann brauch ich kein open mehr .
Oder ich schreibe 2 Klassen, wobei die eine nur Temporäre Dateien akzeptiert und die andere nicht.
Alle meine Posts hängen irgendwie zusammen.
Immer noch die Tabellen verarbeiten.
Code: Alles auswählen
class handler: #oldschool ^^ no object
def __init__(self):
self.file = None
def slect_colums:
...
return new_handler
Im Grunde ist das so eine Art minimales Gerüst, das ich ausbauen möchte. Ein Handler bekommt eine Datei, für welche er zuständig ist, jede Bearbeitung führt zu einer neuen gültigen Tabelle und deren Handler soll zurückgegeben werden.
damit solche hübschen Dinge möglich sind:
Code: Alles auswählen
handler1.select_was().machirgendwasanderes().und_noch_mehr()
Dabei interessieren mich die Zwischenschritte
select_was()
nicht explizit, es sei denn ein Benutzer möchte diese Schritte speichern, so dass diese in Temporäre Dateien geschrieben werden sollten.
Wie genau ich das aber mache ist mir noch unklar.