Genellikle ya dosyaya ya da dosya belirtilmemişse stdout'a veri çıkışı yapmam gerekir. Aşağıdaki pasajı kullanıyorum:
if target:
with open(target, 'w') as h:
h.write(content)
else:
sys.stdout.write(content)
Yeniden yazmak ve her iki hedefi de aynı şekilde ele almak istiyorum.
İdeal durumda şöyle olur:
with open(target, 'w') as h:
h.write(content)
ancak bu iyi çalışmayacak çünkü withbloktan çıkarken sys.stdout kapatılacak ve ben bunu istemiyorum. Ben de istemiyorum
stdout = open(target, 'w')
...
çünkü orijinal stdout'u geri yüklemeyi hatırlamam gerekiyor.
İlişkili:
- Stdout Python'daki bir dosyaya yönlendirilsin mi?
- İstisnaları İşleme - C ++ ile karşılaştırıldığında Python'da istisnaları ele alma hakkında ilginç makale
Düzenle
Sarmalayabileceğimi target, ayrı işlev tanımlayabileceğimi veya bağlam yöneticisi kullanabileceğimi biliyorum . 5 satırdan fazlasını gerektirmeyen basit, zarif, deyimsel bir çözüm arıyorum