Skip to content

Python3 - String-Operatoren

Python3
  • Bei meinem Restic Python3 Projekt möchte ich die Funktion

    --exclude-file=
    

    mit einbauen. Meine ersten Versuche

    process = subprocess.run(['restic','-r',backups[liste2[row]]['repository'],'backup',backups[liste2[row]]['source'],'--exclude-file=',(backups[liste2[row]]['exclude'])],...
    

    Das geht aber nicht, da schmeißt es ständig

    open  : no such file or directory
    

    Ok, was machen? Da es ja auf der Konsole ganz normal funktioniert.

    restic -r /home/frank/restic_test/ backup /home/frank/Bilder --exclude-file=excludes.txt
    

    Ok, ich muss das irgendwie als String zusammenfassen. Nach einiger Zeit habe ich dann das hier gefunden.

    process = subprocess.run(['restic','-r',backups[liste2[row]]['repository'],'backup',backups[liste2[row]]['source'],'--exclude-file=%s' % (backups[liste2[row]]['exclude'])],
    

    Der entscheidende Teil

    '--exclude-file=%s' % (backups[liste2[row]]['exclude'])]
    

    Hier wird an die Stelle, wo der Pfad reinkommt, ein Platzhalter gesetzt %s Den füllen wir dann mit der Variable die in den Klammern dahinter steht. Jetzt funktioniert es 🙂

    Würde auch mit mehreren Variablen gehen.

    subprocess('Programm %s %s' % (option1, option2))
    

    Quelle: https://www.python-forum.de/viewtopic.php?t=4434