の結果を元に戻すにはどうすればよいshlex.split
ですか? つまり、引用したい文字列が与えられた場合、「Unix シェルに似た」list
引用符付き文字列を取得するにはどうすればよいでしょうか?
Update0
私は Python のバグを見つけ、対応する機能のリクエストをここで行いました。
の結果を元に戻すにはどうすればよいshlex.split
ですか? つまり、引用したい文字列が与えられた場合、「Unix シェルに似た」list
引用符付き文字列を取得するにはどうすればよいでしょうか?
私は Python のバグを見つけ、対応する機能のリクエストをここで行いました。
これで(3.3)shlex.quote関数ができました。移動して文書化したのは他にありませんpipes.quote
(コードを使用してpipes.quote
も引き続き機能します)。全体の議論については、http://bugs.python.org/issue9723を参照してください。
subprocess.list2cmdline
使用してはならないプライベート関数です。ただし、移動してshlex
正式に公開することはできます。http://bugs.python.org/issue1724822も参照してください。
使ってpipes.quote
みませんか?
import pipes
strings = ["ls", "/etc/services", "file with spaces"]
" ".join(pipes.quote(s) for s in strings)
# "ls /etc/services 'file with spaces'"
。
subprocess
を使用しsubprocess.list2cmdline()
ます。公式のパブリック API ではありませんが、subprocess
ドキュメントに記載されており、かなり安全に使用できると思います。pipes.open()
(良くも悪くも)よりも洗練されています。