2016-12-07 12 views
0

私はコードをテキストファイルに記録しようとしています。私が試したこと:何かをログに記録する方法

def do_something(): 
    print "test" 

f = open('logtest','w') 
f.write(do_something()) 
f.close() 

だから私は保存したいと思います。テキストファイルを開き、 "test"だけを読むことができるように "test"これはどうすればいいですか?

答えて

3

現在、do_something機能で印刷しています。あなたはwrite方法に結果にアクセスできるようにreturnステートメントを使用する必要があります。

def do_something(): 
    return "test" 

f = open('logtest','w') 
f.write(do_something()) 
f.close() 

代わりopencloseの組み合わせを使用しての、より良い方法はopenに実装されたコンテキストマネージャを使用するようになり、ファイルの意志を自動的withブロックの最後に閉鎖される:あなたはまだprintあなたの関数内あなたが本当にしたいことができるかどう

with open('logtest','w') as f: 
    f.write(do_something()) 

へ:

def do_something(): 
    string = "test" 

    print(string) 

    return string 
2

の代わりにreturn "test"を書きます。 print関数は、返されてファイルに書き込まれる間にテキストを出力するだけです。

4

これを実装するより良い方法は、Pythonのロギングモジュールです。

import logging 

def do_something(): 
    logging.info("test") 

LOG_FILENAME = 'logtest' 
logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO) 
do_something() 
:あなたが行うことができ、あなたの特定のケースで link

import logging 
LOG_FILENAME = 'example.log' 
logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO) 

logging.info('This message should go to the log file') 

関連する問題