Seite 1 von 1

Fehler abfangen beim Zugriff auf Laufwerk A:

Verfasst: Donnerstag 29. April 2004, 20:30
von ih2001
Hallo,

ich will auf Diskette zugreifen und dabei den Fehler, daß keine Diskette im Laufwerk ist abfangen und selbst behandeln.

Code: Alles auswählen

try:
    f = file(r"A:\xyz.txt")
except:
    print "ein Fehler..."
else:
    print "kein Fehler..."
Das Script funktioniert, wenn ich es unter der IDLE laufen lassen. Wenn ich es direkt aufrufe und es ist keine Diskette im Laufwerk bekomme ich immer eine Windowsmeldung "Es befindet sich kein Datenträger im Laufwerk ...". Diese Meldung will ich aber nicht haben, sondern ich will das Problem selbst behandeln!

Wer kann helfen?

Gruß

ih2001

PS: Win2000, Python 2.3.2

Verfasst: Donnerstag 29. April 2004, 20:36
von DER Olf
muss es nicht A:/ heißen??? pfade gibt man doch nie mit \ an...

probiers mal über ne eingabeaufforderung.
python script.py

der bekannteste is oft der richtige weg^^


mfg

Olf

Verfasst: Donnerstag 29. April 2004, 20:53
von Gast
Hi Olf.

muss es nicht A:/ heißen??? ...
unter Windows ist "A:\" Standard, "/" geht aber auch (zumindest in C/C++ oder Python)

probiers mal über ne eingabeaufforderung.
python script.py
schon gemacht: gleiches Verhalten -> Windowsmeldung

Gruß

ih2001

Verfasst: Donnerstag 29. April 2004, 21:21
von hans
Ich habe zwar nur Linux aber versuch mal

Code: Alles auswählen

if os.path.exists('a:\'):
  print "da isses"
else:
  print "war wohl nix"
Hans

Verfasst: Donnerstag 29. April 2004, 22:59
von ih2001
Hi Hans,

Code: Alles auswählen

if os.path.exists('a:\'): 
  print "da isses" 
else: 
  print "war wohl nix"
danke für den Versuch, aber auch das habe ich schon ausprobiert. Das gleiche Ergebnis -> Windows drängelt sich vor. :cry:

Gruß
ih2001

Verfasst: Freitag 30. April 2004, 15:45
von Milan
Hi. Da brat mir einer einen Storch! Ich hab auch Win2000 aber "nur" Python 2.3 (sys.version_info meint (2, 3, 0, 'final', 0)) und bei mir meldet Python das, was es soll. Ich kann mir nicht vorstellen, dass da was von Version 2.3.0 auf 2.3.2 geändert wurde, faktisch kann es nur an den Windowseinstellungen liegen. Hier hab ich aber keine Ahnung, was da nicht stimmen könnte... :shock:

Milan

Verfasst: Montag 3. Mai 2004, 19:14
von Pythonaya
Hey,
das Problem ist doch, dass der Pfad, also das Laufwerk existiert, du aber nicht darauf zugreifen kannst, weil keine Diskette drinsteckt!
Demnach musst du die Bedingung umformulieren:

Code: Alles auswählen

from os import*
if access("A:/", R_OK)==1:
     print "Es klappt..."
else:
     print " Klappt nicht"
So klappts bei mir :D


MFG,
Florian

Verfasst: Montag 3. Mai 2004, 19:21
von Milan
Pythonaya hat geschrieben:Hey,
das Problem ist doch, dass der Pfad, also das Laufwerk existiert, du aber nicht darauf zugreifen kannst, weil keine Diskette drinsteckt!
Hi. Interessante Lösung (kannte access bisher nicht)! Allerdings meint er bei mir bereits, wenn die Diskette nicht drin ist, dass der Pfad nicht existiert. Demzufolge wäre F_OK angebracht.

Trotzdem bin ich wie ih2001 der Meinung, dass eine try-except-Klausel das halt experimentell abfangen müsste und somit dasselbe Ergebnis liefern müsste, dazu sind sie ja da und bei mir funktioniert es ja auch. Bleibt die Frage, warum es bei ih2001 nicht funktioniert.

Milan