[Python] argparse e stringhe
Matteo Perini
perini.matteo a gmail.com
Mer 8 Apr 2020 08:16:03 CEST
Ciao a tutti,
ho un problemino con il comportamento di argparse.
Sto facendo delle prove con questo script di test:
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--text", default = 'ci\nao', type=str)
args = parser.parse_args()
text = args.text
for line in text.split('\n'):
print(line)
Se eseguo lo script senza argomenti il risultato è quello atteso:
ci
ao
Il "\n" viene interpretato correttamente.
Se però eseguo lo script mettendo come argomento -t "ci\nao" il
risultato è:
ci\nao
problema che riesco a risolvere convertendo text così:
text = bytes(args.text, "utf-8").decode("unicode_escape")
a questo punto ottengo di nuovo l'andata a capo.
Ultimo caso, se l'utente non mette le virgolette e scrive -t ci\nao il
risultato di args.text è:
cinao
mi toglie solo la "\" e a questo punto io non so più come trattarlo.
Che voi sappiate c'è un modo per controllare se un argomento ha le
virgolette o no.
Oppure trattare l'input sempre come raw?
Penso sia un problema che potrebbe essere piuttosto comune ma non ho
trovato soluzioni online.
Ciao
Matteo
Maggiori informazioni sulla lista
Python