SORU
16 EKİM 2008, PERŞEMBE


Bash yerine Python kullanabilir miyim?

Ben şu anda kötü bir şekilde hatırlanacak bir sürü awk, sed, bash ve Perl küçük bir bit ile benim metin düzenleme yapmak.

Bu python bunun için iyi bir kaç yerde bahsedilen gördüm, az çok bilgim var ve daha fazla bilmek istiyorum. Bunun için iyi bir seçim python, ve orada iyi bir kitap veya python komut kabuk, awk, sed ve arkadaş değiştirmek için nasıl kullanılacağını öğrenme kılavuzu?

CEVAP
16 EKİM 2008, PERŞEMBE


Herhangi bir kabuk özellikleri birkaç setleri vardır.

  • Temel Linux/Unix komutları. Bunların hepsi subprocess kütüphane mevcuttur. Bu her zaman yapmak için en iyi ilk tercihi değiltümdış komutlar. Ayrıca Linux komutları bazı komutlar için shutil bak, ama muhtemelen doğrudan Python komut uygulamak. Linux komutları başka bir büyük parti os kütüphanede; bu Python daha basit yapabilirsiniz.

    Ve -- bonus! -- daha hızlı. Kabuk içinde her biri ayrı bir Linux komutu (birkaç istisna dışında) bir alt işlemi çatal. shutil os Python modülleri kullanarak, bir alt işlemi çatal yok.

  • Shell çevre özellikleri. Bu komut bir ortam (geçerli dizin ve ortam değişkenleri ve ne-değil) ayarlar şeyler içerir. Kolayca Python bu doğrudan yönetebilirsiniz.

  • Kabuk programlama özellikleri. Bu işlem durum kodu kontrol ediyor, çeşitli mantık komutları (if, while, vs.) test komutu ve hepsi akraba. Fonksiyon tanımı şeyler. Bu kadar, Python ile çok daha kolay. Bu bash ve Python bu işi yapmaktan kurtulmak büyük zaferlerinden biridir.

  • Etkileşim özellikleri. Bu komut geçmişi içerir ve ne-değil. Kabuk betikleri yazmak için buna ihtiyacın yok. Bu senaryo yazma için sadece insan ilişkileri için değil.

  • Kabuk yönetim özellikleri dosyası. Bu Yönlendirme ve boru hatları içerir. Bu yanıltıcıdır. Bu çok alt işlemi ile yapılabilir. Ama kabuk kolay olan bazı şeyler Python tatsız. (a | b; c ) | something >result gibi şeyler özellikle. Bu paralel (b giriş a çıkış ile) iki süreç, b) üçüncü bir süreci takip çalışır. O sıra çıktısı something ile paralel olarak çalışan ve bir çıktı dosyası result adlı toplanır. Bu sadece karmaşık başka bir dilde ifade etmek.

Özel programlar (awk, sed, grep, vb.) genellikle Python modül olarak yazılabilir. Denize gitmek yok. Ne gerek değiştirin ve "" modülü. grep gelişmeye Yerini alan bir Python modülü yazmaya başla sakın"". grep

En iyi şey adımda bunu yapabilirsiniz.

  1. AWK değiştirin ve Python ile PERL. Her şey rahat bırak.
  2. Python ile yerine GREP bak. Bu biraz daha karmaşık olabilir, ama GREP sürümü işleme ihtiyaçlarınıza uygun olabilir.
  3. Yerine bakmak os.walk kullanan Python döngüsü ile BULMAK. Bu gibi pek çok işlem spawn yok çünkü büyük bir kazanç.
  4. Shell ortak mantık yerine (döngüler, vb. kararlar) bak Python komut ile.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005
  • pissengehen

    pissengehen

    26 EYLÜL 2006