Conosco il backslash di escape nella programmazione. Comunque sto passando un argomento da riga di comando in un programma Python per analizzare. Lo spazio bianco è irrilevante, tuttavia tramite la riga di comando, gli spazi bianchi contano. Quindi sto cercando di concatenare tutti gli argomenti argv [] tranne il primo elemento in una stringa per poi analizzare. Tuttavia un token di un singolo "\" non viene mai incontrato nel ciclo for.Gestione del backslash come argomento della riga di comando in Python
L'argomento della riga di comando (notare gli spazi bianchi intorno '\'):
((1 * 2) + (3 - (4 \ 5)))
Programma:
import sys
string = ""
for token in sys.argv[1:len(sys.argv)]:
print(token)
if "\\" in r"%r" % token:
print("Token with \\ found")
string += token
print(string)
print("done")
Perché non si passa l'intera espressione come un singolo argomento? 'python myscript.py '((1 * 2) + (3 - (4 \ 5)))''. Inoltre, bash considera \ come un inizio di una sequenza di escape e non lo invia come argomento, ma cmd non lo invia e lo invia normalmente, che fornisce un comportamento diverso su un SO differente. – Kolmar
Sono d'accordo con @Kolmar, renderebbe le cose molto più semplici in python e non ti devi preoccupare di ciò che la shell fa ai tuoi argomenti – Paco
Che ha funzionato perfettamente. Ringrazia tutti! – tfbbt8