Saya memiliki skrip Python yang menerima argumen string.
$ python script.py "one image.jpg" "another image.jpg"
Ini berfungsi seperti yang diharapkan.
Python argparse: ["one image.jpg", "another image.jpg"]
Jika saya harus memberikan nama file yang akan saya lakukan,
$ python script.py $(ls "/some/dir/*.jpg")
Python argparse: ["one", "image.jpg", "another", "image.jpg"]
Jika menggunakan -Q
dari ls
perintah, saya bisa membungkus hasil antara tanda kutip ganda. Namun, kutipan tetap lolos dalam skrip Python, yaitu.
$ python script.py $(ls -Q "/some/dir/*.jpg")
Python argparse: ['"one image.jpg"', '"another image.jpg"']
Bagaimana saya harus memperluas ls
nama file menjadi string yang tepat untuk digunakan sebagai argumen? (seperti pada contoh pertama saya)
"$(ls -Q '/some/dir/*.jpg')"
. Namun ada alternatif yang lebih baik sebagaimana dinyatakan oleh jawaban.