SORU
30 AĞUSTOS 2008, CUMARTESİ


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
11 Mayıs 2009, PAZARTESİ


pipes.quote() (Python 1.6 beri mevcut) ne isterseniz onu yapar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chrmoe

    chrmoe

    7 Kasım 2006
  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010
  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006