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

  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • ICON

    ICON

    19 EKİM 2011
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007