os.path.exists im lokalen Netzwerk

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
michpro
User
Beiträge: 19
Registriert: Samstag 27. Dezember 2014, 21:30

Hallo Forum,
ich bin gerade etwas am verzweifeln. Ich möchte mit einem Python-Script Daten auf mein NAS Speicher in eine Datei schreiben. Wenn ich das Script laufen lasse und die Daten lokal auf dem D-Laufwerk schreibe funktioniert alles.

in der Zwischenzeit scheitere ich schon im Python Shell bei der Prüfung ob der Pfad existiert... Hier der Auszug aus dem Shell:

>>> ip="DISKSTATION"
>>> os.system("ping -c 1 " + ip)
1
>>> ip="192.168.178.27"
>>> os.system("ping -c 1 " + ip)
1

--> somit sollte der NAS-Speicher (Diskstation mit IP 192.168.178.27) erreichbar sein.


>>> os.path.exists('\\DISKSTATION\homes')
False
--> weshalb bekomme ich hier bei der path.exists Abfrage ein false zurück, obwohl ich in meinem Dateiexplorer dieses Verzeichnis aufrufen kann??


Ich hoffe Ihr könnt mir da weiterhelfen

DANKE!
michpro
BlackJack

@michpro: Du musst da am Anfang zwei Backslashes haben statt nur einem, nehme ich mal an:

Code: Alles auswählen

In [18]: print '\\DISKSTATION\homes'
\DISKSTATION\homes

In [19]: print '\\\\DISKSTATION\\homes'
\\DISKSTATION\homes

In [20]: print r'\\DISKSTATION\homes'
\\DISKSTATION\homes
Der Backslash hat in Zeichenkettenliteralen eine besondere Bedeutung um Sonderzeichen und alternative Angaben von Zeichen zum Beispiel als Hexadezimalcode zu ermöglichen. Deshalb muss man einen Backslash entsprechend schützen, entweder durch einen vorangestellten Backslash oder in dem man mit einem „raw“-Zeichenkettenliteral die Bedeutung des Backslash als spezielles Zeichen aufhebt.
michpro
User
Beiträge: 19
Registriert: Samstag 27. Dezember 2014, 21:30

@ BlackJack,

DANKE! das wars, zumindest bekomme ich bei meiner Pfadprüfung ein true zurück.

Gruß
michpro
Antworten