SORU
18 Temmuz 2011, PAZARTESİ


&; Hiçbir şey " ve " stdout yönlendirme; python

Büyük bir proje modülleri, standart çıktıya baskının her şey yeterince büyük sayıda oluşan. Şimdi projenin boyutu büyüdükçe, büyük hayır vardır. print deyimleri program çok yavaş yaptı ki std üzerinde çok fazla baskı.

Yani, ben şimdi karar vermek istiyorumçalışma zamanıveya stdout için bir şey yazdırmak isteyip istemediğinizi. Ben hepsini var gibi modüllerde değişiklik yapmak. (Bir dosyaya stdout yönlendirebilirsiniz biliyorum ama bu bile oldukça yavaş.)

Benim soru nasıl bir şey için stdout yönlendirme yapabilirim nasıl print deyimi hiçbir şey yapabilirim yani?

# I want to do something like this.
sys.stdout = None         # this obviously will give an error as Nonetype object does not have any write method.

Şu anda sahip olduğum tek fikir bir yöntem hiçbir şey yapmaz (yaz) ve bu sınıfın bir örneği stdout yönlendirme var olan bir sınıf.

class DontPrint(object):
    def write(*args): pass

dp = DontPrint()
sys.stdout = dp

Bu python için dahili bir mekanizma var mı? Yoksa bu daha mı iyi?

CEVAP
18 Temmuz 2011, PAZARTESİ


Çapraz platform:

import os
import sys
f = open(os.devnull, 'w')
sys.stdout = f

Pencereler:

f = open('nul', 'w')
sys.stdout = f

Linux:

f = open('/dev/null', 'w')
sys.stdout = f

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • ExcelTutorials

    ExcelTutoria

    2 Mayıs 2009