Erstellte Dateien trotz f.close noch 'verwendet'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gerippter
User
Beiträge: 2
Registriert: Donnerstag 9. September 2004, 10:56

Donnerstag 9. September 2004, 11:07

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
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Donnerstag 9. September 2004, 11:11

Hi!

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

Code: Alles auswählen

export.close()
Gruß, mawe
Gerippter
User
Beiträge: 2
Registriert: Donnerstag 9. September 2004, 10:56

Donnerstag 9. September 2004, 11:17

*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
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Donnerstag 9. September 2004, 19:02

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
Antworten