Hallo,
ich beschäftige mich erst seit einigen Wochen mit Python und habe folgendes Problem.
Ich möchte meinem Python-Programm "program.py" Werte übergeben:
Mein Aufruf: python.exe program.py "wert="1.0""
Python empfängt folgendes:
wert=1.0
Richtig wäre jedoch:
wert="1.0"
Gibt es eine Möglichkeit, dass die Anführungszeichen erhalten bleiben? Momentan habe ich herausgefunden, dass Anführungszeichen erhalten bleiben, wenn man diese durch 3 Anführungszeichen ersetzt.
Auszug:
import sys
import re
end=len(sys.argv)
zstop=""
print sys.argv
for i in range(0, end):
zstop=zstop + " " + sys.argv
print zstop
Vielleicht hat ja jmd einen Tip oder ähnliche Erfahrungen gesammelt?!
sys.argv - Übergabe von Argumenten mit Anführungszeichen
Hallo Leonidas,Leonidas hat geschrieben:Hallo Geb1980, willkommen im Forum,
Das ist eine Sache der Shell, versuch mal 'wert="1.0"'.
vielen Dank für deine Hilfe. Auch bei diesem Beispiel werden die Anführungszeichen entfernt.
Ergebnis ist: wert=1.0
Man bräuchte eine Option, die den String so wie er ist übergibt - ohne irgendwelche Zeichen zu interpretieren.
Unter python --help habe ich nichts passendes finden können...
-
- User
- Beiträge: 92
- Registriert: Mittwoch 10. September 2008, 22:10
- Wohnort: Hamburg
Code: Alles auswählen
import sys
print sys.argv[1]
wert="1.0"
Bei Dir nicht?
Hallo Marcus,__marcus__ hat geschrieben:python cmd.py 'wert="1.0"'Code: Alles auswählen
import sys print sys.argv[1]
wert="1.0"
Bei Dir nicht?
mittlerweile vermute ich dass es entweder von der Python Version oder vom Betriebssystem abhängig ist.
Ich bin an Python Version 1.5.2 gebunden, sowie WIN2K3 - und bei mir verschwinden diese Zeichen definitiv.
unter DOS:
Code: Alles auswählen
X:\>python cmd.py 'wert="1.0"'
'wert=1.0'
X:\>python cmd.py wert=\"1.0\"
wert="1.0"
Hallo Zap,Zap hat geschrieben:unter DOS:
Code: Alles auswählen
X:\>python cmd.py 'wert="1.0"' 'wert=1.0' X:\>python cmd.py wert="1.0" wert="1.0"
vielen Dank für die Hilfe. Leider erhalte ich den String aus einer Datenbank, den ich vor der Übergabe in mein Python Programm nicht abändern kann. Daher kann ich diese Möglichkeit nicht verwenden.
@Geb1980: Es ist letzendlich keine Python-Frage. Du musst heraus finden, wie man bei der Shell, also wohl in diesem Fall `cmd.exe`, Anführungszeichen "schützt". Der Python-Interpreter hat da keinen Einfluss drauf, wenn der keine Anführungszeichen bekommt, wurden die schon *vor* dem Aufruf von der Shell entfernt.