Ich habe ein Python-Skript, das Zeichenfolgenargumente akzeptiert.
$ python script.py "one image.jpg" "another image.jpg"
Dies funktioniert wie erwartet.
Python argparse: ["one image.jpg", "another image.jpg"]
Wenn ich Dateinamen übergeben müsste, würde ich tun,
$ python script.py $(ls "/some/dir/*.jpg")
Python argparse: ["one", "image.jpg", "another", "image.jpg"]
Wenn Sie den Befehl -Q
of verwenden ls
, kann ich Ergebnisse zwischen doppelte Anführungszeichen setzen. Anführungszeichen bleiben jedoch im Python-Skript maskiert, d. H.
$ python script.py $(ls -Q "/some/dir/*.jpg")
Python argparse: ['"one image.jpg"', '"another image.jpg"']
Wie soll ich ls
Dateinamen in geeignete Zeichenfolgen erweitern, um sie als Argumente zu verwenden? (wie in meinem allerersten Beispiel)
"$(ls -Q '/some/dir/*.jpg')"
. Es gibt jedoch bessere Alternativen, wie in den Antworten angegeben.