Python kopieren zwischen Raspberry Pi und Fileserver

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
PotterParsel
User
Beiträge: 20
Registriert: Montag 5. September 2022, 08:58

Hallo zusammen,

ich habe folgendes Problem:

auf meinen Desktop habe ich das Bild Test.png → Pfad: /home/pi/Desktop/Test.png

ich möchte dieses Bild mit Python auf meinen FileServer kopieren → Pfad: \\Server/BilderBackup/

ausprobiert habe ich Folgendes:

Code: Alles auswählen

pathpicture="\\Server/BilderBackup/Bild1.png"
path= "/home/pi/Desktop/Test.png"
smbclient.copyfile(path, fr"\{pathpicture}", username=username, password=password)

Leider bekomme ich nur folgende Fehlermeldung:

ValueError: src must be an absolute path to where the file should be copied from.

Hat, wer ’ne Idee?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du hast da schon wieder irgendwelche Muell-Zeichen drin. In diesem Fall ein \{.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wenn man das weg lässt, dann ist auch das f-Zeichenkettenliteral überflüssig. Und die Fehlermeldung passt auch nicht zum Code, denn der Quellpfad *ist* in dem Beispiel ja ein absoluter Pfad. 🤔
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
PotterParsel
User
Beiträge: 20
Registriert: Montag 5. September 2022, 08:58

__blackjack__ hat geschrieben: Mittwoch 21. September 2022, 14:20 Wenn man das weg lässt, dann ist auch das f-Zeichenkettenliteral überflüssig. Und die Fehlermeldung passt auch nicht zum Code, denn der Quellpfad *ist* in dem Beispiel ja ein absoluter Pfad. 🤔
Genau das ist, was ich nicht verstehe. Der Pfad ist der absolute Pfad und die Datei existiert auch.

Ich habe jetzt mal die \{ herausgenommen und bekomme trotzdem noch den gleichen Fehler

Code: Alles auswählen

pathpicture="\\Server/BilderBackup/Bild1.png"
path= "/home/pi/Desktop/Test.png"
if Path(path).is_file():
    print("JA")
    smbclient.copyfile(path,pathpicture, username=username, password=password)
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Seufz. Da wiederum fehlt das r vor dem pathpicture-String-Literal. Denn da willst du ja in Summe zwei backslashes haben. Du musst dir sowohl die Pfadkonventionen, als auch die Art, wie Strings in Python escape Sequenzen handhaben, richtig verinnerlichen. Sonst stolperst du da permanent rum.
Antworten