J'ai un script Python qui accepte les arguments de chaîne.
$ python script.py "one image.jpg" "another image.jpg"
Cela fonctionne comme prévu.
Argparse Python: ["one image.jpg", "another image.jpg"]
Si je dois transmettre des noms de fichiers, je le ferais,
$ python script.py $(ls "/some/dir/*.jpg")
Argparse Python: ["one", "image.jpg", "another", "image.jpg"]
Si vous utilisez la commande -Q
of ls
, je peux encapsuler les résultats entre guillemets doubles. Cependant, les citations restent échappées dans le script Python, c'est-à-dire.
$ python script.py $(ls -Q "/some/dir/*.jpg")
Argparse Python: ['"one image.jpg"', '"another image.jpg"']
Comment dois-je développer les ls
noms de fichiers en chaînes appropriées à utiliser comme arguments? (comme dans mon tout premier exemple)
"$(ls -Q '/some/dir/*.jpg')"
. Cependant, il existe de meilleures alternatives comme indiqué dans les réponses.