süzgeçler

İşlem çıktısının etkinlik tabanlı boşaltılması
Şimdi İndirin

süzgeçler Sıralama ve Özet

Reklamcılık

  • Rating:
  • Lisans:
  • BSD License
  • Fiyat:
  • FREE
  • Yayıncı adı:
  • Vincent Driessen
  • yayıncı web sitesi:
  • http://datafox.nl

süzgeçler Etiketler


süzgeçler Açıklama

İşlem çıktısının etkinlik tabanlı boşaltılması Süzgeçler, alt işlemin etrafında bir soyutlamadır. Popen, işleme çıkışını okumak ve kontrol etmek. Subprocess.Popen çevresinde kontrolör sargısı ve bu nedenle alt process.Popen'in başlatıcısının aldığı (isteğe bağlı) parametrelerinin tamamını alır. Örneğin, minimum süzgeç bir komut dizisi alır: süzgeçlerden drosters drosterDef Ignore_Event (satır, IS_ERR): PassMy_drainer = süzgeç (, read_event_cb = ignore_event) my_drainer.start () ama, ekstra argümanlar izin verilir: my_drainer = süzgeç (, Shell = true, bufsize = 64, read_event_cb = ignore_event) my_drainer.start () ayrılmış süzgeç için sadece iki argüman stdout ve stderr . Süzgeç onların alt işlem olmalarını gerektirir. Açıkça açıkça kullanın ve bunları size göre belirler. Bir CallBackDrainer'ın gücünün, işlemin 'Standart çıkış veya standart hata akışlarından okunan her satırın çağrıldığı bir geri arama işlevine yol açtığı gerçeğinde yatıyor. Bu, satır tabanlı olduğu sürece hemen hemen her işlemin çıktısını işlemenizi sağlar. Geri arama işlevi, Yukarıdaki örnekte görüldüğü gibi, Read_Event_CB parametresi kullanılarak belirtilebilir. Zorunludur. Belirtilen geri arama işlevi, belirli bir imzaya sahip olması gerekir: def my_callback (satır, IS_ERR): ... İki parametre almalıdır: satır (bir dize) ve IS_ERR (bir Boolean). İkincisi, çizginin standart hata akışından okunduğunu gösterir. Bunun için başka bir şey yok. Her şeyi iade etmesi gerekmez: iade değeri göz ardı edilecektir. Geri arama işleminiz de aşağıdaki örnekte olduğu gibi bir sınıf yöntemi olabilir. Bu durumlarda, Foo.My_Method'u READ_EVENT_CB parametresinin değeri olarak geçtiğine dikkat edin: Sınıf MyClass (nesne): def my_method (öz, satır, IS_ERR): ... foo = myclass () my_drainer = süzgeç (, read_event_cb = foo.my_method) my_drainer.start () Granülerlik şu anda tek bir çizgidir. Önceden tanımlanmış veri parçalarını okumak istiyorsanız, lütfen bu repo çatallayın ve bir süzgeç alt sınıfınızı kendiniz uygulayın. Her satırdan sonra çağrılmayan bir geri arama istiyorsanız, ancak keyfi bir zaman veya satır miktarından sonra, bunu kendiniz uygulamak zorundasınız. (Yine de çok zor olmamalıdır. İlham için Örnek Dizini'ne bakın.) İşlemlerDrainer'ı iptal etmek, yürütme ortamında çalışan bir işlemi iptal etmenizi sağlar, bir terminate () mesajını zorla gönderme (bir UNIX sigTterm'in python eşdeğeri) mesaj) belirli bir durum ortaya çıktığında. Varsayılan olarak, işlem asla anormal olarak sonlandırılmayacaktır. Sonlandırma kriterlerini belirlemek için, parametre gerektirmeyen ve kürtaj istenirse ve aksi takdirde yanlış ise doğru olan bir geri arama işlevi uygulayın. Örneğin, uzun bir süreç için, disk (neredeyse) dolu (neredeyse) alıyorsa, sonlandırmak isteyebilirsiniz. Ancak ne kadar boşluğun serbest olduğunu kontrol etmek uzun bir işlem olabilir, bu nedenle sadece az miktarda yapmak isteyebilirsiniz: def out_of_diskspace (): sol = handytools.check_disk_free () total = handytools.check_disk_total () geri dönüş (sol / toplam) <0.03 # Aşağıdaki süzgeç prenseri yürütür ve disk # (neredeyse) her 5 saniyede bir dolum olup olmadığını kontrol eder. Boş disk alanı geçerse,% 3 .my_drainer = süzgeç (, Read_Event_Acort = Out_Of_DiskSpace, Check_Interval = 5.0) exitcode = my_trainer.start () Örnek oldukça kendini açıklayan. İşlemin sonucunu görmek için ExitCode'u kontrol edebilirsiniz. Gereksinimler: · Python


süzgeçler İlgili Yazılım

pytnef

PYTNef 0.2'den Tneflib.py için hata düzeltmeleri \ geliştirmeleri ...

146

İndirmek