Seite 1 von 1

Erstellte Dateien trotz f.close noch 'verwendet'

Verfasst: Donnerstag 9. September 2004, 11:07
von Gerippter
Hallo zusammen. Kurz vor dem Wahnsinn wende ich mich mal an euch:
Ich habe das Problem, dass Dateien, die ich mit Python Scripts erzeuge, trotz f.close Befehls noch von Python 'verwendet' werden.
(Ja, das OS ist Windows, muss leider.)
Wenn ich z.B. einen ASCII Dump mache (und ich verwende PythonWin oder IDLE), kann ich die .asc Datei nicht oeffnen, solange ich nicht Script und Interpreter geschlossen habe. Dann gehts.
Das nervt, kann aber z.B. durch kopieren des Outputs umgangen werden (ich oeffne die Kopie des Outputs, sehr unelegant).
Da ich aber Python nutze, um fuer ArcGIS Scripte zu erstellen, scheidet die Kopier-Option bei Dumps von Groessen von 10-1000 MB definitiv aus. ;-)
Und ich bin sicher, ich mache einen dummen Fehler...
Oder?
Hat sonst keiner das Problem?
Was kann ich da tun? Gibts kein Flush, Kill, GoandDie oder so Befehl?
Hilft es wenn ich Exeptions throwe, catch oder sonstwas?
Im Moment erstelle ich einen NetCDF Dump z.B. so:

Code: Alles auswählen

export = open(tempdump_asc,'w')

write_header()  # read vars and write ASCII header for export grid
for y in range(cols):
   for x in range(rows):
       actval = rh_var[:,(cols-1)-y,x]
       export.write(str(int(actval[0]))+' ')
   export.write('\n')
export.close

Danke fuer jede Hilfe

Gruesse
Felix

Verfasst: Donnerstag 9. September 2004, 11:11
von mawe
Hi!

Vielleicht ist das nur ein Abschreibfehler, aber hinter close gehören ():

Code: Alles auswählen

export.close()
Gruß, mawe

Verfasst: Donnerstag 9. September 2004, 11:17
von Gerippter
*klatsch*
WIE doof kann ein Mensch sein?
WIE doof frage ich?

Original sieht mein Code so aus:

Code: Alles auswählen

ncfile.close()
export.close
os.close(1)
Na??
Haette mir das auffallen koennen?
Oder muessen?

Vielen vielen vielen Dank.
Ich gehe mich jetzt schaemen

Verfasst: Donnerstag 9. September 2004, 19:02
von hans
Gerippter hat geschrieben:Haette mir das auffallen koennen?
Oder muessen?
Ja, aber erst nach dem dritten Liter Kaffee morgens um 2:30 Uhr.

Wir kenn das glaube ich alle. Ich pflege dann nach drei Stunden nervtötendem Versuchen, den Kram erst einaml in die Ecke zu schmeißen, einmal um den Block zu laufen oder meinen Hintern aufs Fahrrad zu schwingen. Das pustet die kleinen grauen Zellen durch und hilft meistens. Wenn nicht: Liegen lassen und nächsten Tag weitermachen.

Hans