Il giorno mer 8 apr 2020 alle ore 08:28 Marco De Paoli <depao...@gmail.com> ha scritto:
> > > Il giorno mer 8 apr 2020 alle ore 08:16 Matteo Perini < > perini.mat...@gmail.com> ha scritto: > >> 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 >> > > se vuoi i parametri raw > > import sys > print(sys.argv) > se invece vuoi qualche altra info su newline ed escape puoi dare un'occhiata qui https://stackoverflow.com/questions/16904064/end-of-line-new-line-escapes-in-bash M. >
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python