私はPythonには新しく、まだ言語を学んでいます。私が遭遇したことの1つは、sys.stdoutを再割り当てしてprintのデフォルト出力を変更することでした。だから私はテストとしてこれを書いた:sys.stdoutがsys .__ stdout__に再割り当てされていません
import sys
sys.stdout = open('log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
「ねえ」ファイルに書き込まれますが、「こんにちは」どこにも現れません。しかし、これは期待どおりに動作し、「ちょっと「こんにちは」ファイルに書き込まれ、は、コンソール出力に出力されます。要するに
import sys
sys.__stdout__ = sys.stdout
sys.stdout = open(r'C:\Users\Vincent\Documents\Python\log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
本当に重要すぎてdoesntのその小さな問題、私はそれがどうやってしなければならないのか分からない理由があるのだろうかと疑問に思うだけです。私はこれをWindows 7 Home PremiumでIDLEとpyscripterでv3.2.3と私の移植可能なpython v3.2.1で試しました。
このスクリプトをどのように実行しますか?あなたは最初の 'print'が働いたかどうかは分かりませんでした。 *最初にsys.stdoutに他の変数を代入して戻すと変更されます*これを示すコードを記述して出力を記述する方が良いでしょう。 –