Fehler abfangen beim Zugriff auf Laufwerk A:

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
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
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

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

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
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
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

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
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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
Antworten