Nasıl os kaçmak için.() sistem Python ile çağırır?
Os kullanırken.() sistem sık sık komutları için dosya isimleri ve diğer bağımsız değişkenleri parametre olarak geçirilen kaçmak için gerekli. Bunu nasıl yapabilirim? Tercihen birden fazla işletim sistemi üzerinde çalışacak bir şeyler kabukları/ama özellikle bash için.
Şu an yapıyorum, ama bunun için bir kütüphane işlevi, ya da en azından daha şık/verimli/sağlam bir seçenek olmalı emin değilim:
def sh_escape(s):
return s.replace("(","\\(").replace(")","\\)").replace(" ","\\ ")
os.system("cat %s | grep something | sort > %s"
% (sh_escape(in_filename),
sh_escape(out_filename)))
Düzenleme:Tırnak kullanarak basit bir cevabı kabul ettim, " ve " biraz farklı davranır. nerede Windows geldim çünkü aklıma gelmedi; sanırım neden bilmiyorum
Güvenlik ile ilgili endişelerini anlıyorum, ama bu durumda, os hızlı ve kolay bir çözüm ile ilgileniyorum.() sistem sağlar ve tellerin kaynağı da kullanıcı tarafından oluşturulan ya da en azından güvenilir bir kullanıcı (ben) tarafından yazılır.
CEVAP
pipes.quote()
(Python 1.6 beri mevcut) ne isterseniz onu yapar.
Nasıl Python sistem hostname almak içi...
Nasıl Python ile şimdiki zaman almak i...
Nasıl parantez (küme parantezleri) biç...
Nasıl klon ya da Python içinde bir lis...
Nasıl dize Python küçük harfe dönüştür...