Ho uno script Python che accetta argomenti di stringa.
$ python script.py "one image.jpg" "another image.jpg"
Funziona come previsto.
Python argparse: ["one image.jpg", "another image.jpg"]
Se avessi bisogno di passare nomi di file, lo farei,
$ python script.py $(ls "/some/dir/*.jpg")
Python argparse: ["one", "image.jpg", "another", "image.jpg"]
Se uso il comando -Q
of ls
, posso racchiudere i risultati tra virgolette doppie. Tuttavia, le virgolette rimangono evase nello script Python, ad es.
$ python script.py $(ls -Q "/some/dir/*.jpg")
Python argparse: ['"one image.jpg"', '"another image.jpg"']
Come devo espandere i ls
nomi dei file in stringhe appropriate da usare come argomenti? (come nel mio primo esempio)
"$(ls -Q '/some/dir/*.jpg')"
. Tuttavia ci sono alternative migliori come indicato dalle risposte.