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

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • ChannelRichard

    ChannelRicha

    7 Kasım 2008