Python Variable in string maskieren?
import os
zahl = "20"
os.system('python3 /verzeichnis/script.py zahl')
Das Python erkennt* die variable zahl nicht als String sondern als eingabe.
Als ausgabe erscheint dann immer "zahl" stadt "20"
3 Antworten
Beispielsweise so...
import os
zahl = "20"
os.system('python3 /verzeichnis/script.py '+zahl)
Dann wird durch das „+zahl“ der String „zahl“ an das Ende des vorigen Strings gehängt. (Mit „+“ kann man Strings verketten.)
Oder man kann f-Strings verwenden...
import os
zahl = "20"
os.system(f'python3 /verzeichnis/script.py {zahl}')
Ansonsten könnte man beispielsweise auch str.format() nutzen.
Also beispielsweise...
import os
zahl = "20"
os.system('python3 /verzeichnis/script.py {}'.format(zahl))
... oder...
import os
zahl = "20"
os.system('python3 /verzeichnis/script.py {hier}'.format(hier=zahl))
Da werden dann die geschweiften Klammern entsprechend ersetzt.
richtig wäre es :
import os
zahl = "20"
os.system('python3 /verzeichnis/script.py ' + zahl)
Du hast vergessen, das Variablen immer nur ohne den Obenkommas gemacht werden müssen, wie sollte Python den sonst unterscheiden ob es sich um eine variable, einer Funktion mit Rückgabewert ist oder etwas, das einfach so angenommen werden soll wie es dort steht.
Als ausgabe erscheint dann immer "zahl" stadt " 20"
Natürlich. Du hast es ja so geschrieben. Woher soll Python wissen, dass du da die gleichnamige Variable drin haben willst?
Wenn du willst, dass der Inhalt der Variable "zahl" dort landet, kannst du zB die beiden Strings miteinander verketten.
os.system('python3 /verzeichnis/script.py ' + zahl)
Du kannst stattdessen auch f-Strings verwenden.