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

  • Awesome Toys TV

    Awesome Toys

    18 HAZİRAN 2014
  • grickle

    grickle

    22 AĞUSTOS 2006
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011