SORU
13 Ocak 2011, PERŞEMBE


Python ile bir dosyaya yeniden yönlendirmek stdout?

Nasıl Python keyfi bir dosyaya stdout yönlendirme yapabilirim?

Yorumcu isteği üzerine EDİT:

Ne zaman uzun soluklu bir Python betiği (e.g, web uygulama) ssh oturumu içinde başladı ve backgounded ve ssh oturumu kapattı, uygulama Error yükseltmek ve stdout yazmak için çalıştığı anda başarısız olur. Uygulama yapmak için bir yol bulmam gerekiyordu ve Error hatası nedeniyle önlemek için stdout yerine bir dosyaya çıkış modülleri. Şu anda, bir dosyaya çıktı yönlendirmek için nohup kullanırım ve bu iş bitmiş olur, ama eğer nohup kullanarak olmadan bunu yapmak için bir yolu varsa merak ettim, meraktan soruyorum.

Zaten sys.stdout = open('somefile', 'w'), denedim ama hala bu terminal (veya belki de sys.stdout = ... çizgisini hiç ateş etmedi) çıkış bazı dış modülleri önlemek için görünmüyor. Üzerinde test ettik basit komut çalışması gerektiğini biliyorum, ama ben de henüz bir web uygulaması üzerinde test etmedim.

CEVAP
13 Ocak 2011, PERŞEMBE


Eğer bir dosya için Python betiği, sys.stdout set içinde yönlendirme yapmak istiyorsanız nesne hile yapar:

import sys
sys.stdout = open('file', 'w')
print 'test'

Çok daha yaygın bir yöntem yürütürken kabuk yönlendirme kullanmaktır (aynı Windows ve Linux üzerinde):

$ python foo.py > file

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kndx

    kndx

    11 Mart 2006
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011