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

  • Bach Vlogs

    Bach Vlogs

    18 HAZİRAN 2011
  • Felice Musique

    Felice Musiq

    22 NİSAN 2014
  • movies95

    movies95

    27 Kasım 2006