2016-02-23 139 views
1
def log(): 
    with open("log.txt", 'a') as f: 
     print ".log.txt" 
     f.write(msg.encode('utf-8') +"\n") 

我多次調用log(),但不會在新行寫每個味精,我不知道爲什麼。我試着在最後添加f.close(),但是這也不起作用。超級沮喪!python:爲什麼不寫入新文件?

+0

如果你想登錄自己的應用程序,請使用廣泛測試和使用的設施:https://docs.python.org/2/library/logging.html – RvdK

回答

5

我假設你想將log()定義爲log(msg) :)。我試過了,它在我的系統(OS X)上工作。 \n應該可以工作,但它不是100%的跨平臺,所以請嘗試使用os.linesep

# test.py 
import os 

def log(msg): 
    with open("log.txt", 'a') as f: 
     f.write(msg.encode('utf-8') + os.linesep) 

log('aaa') 
log('bbb') 

然後:

$ python test.py 
$ cat log.txt 
aaa 
bbb 
-1

你沒給出的味精。

def log(): 
    msg="bhansa" 
    with open("log.txt", 'a') as f: 
     print ".log.txt" 
     f.write(msg.encode('utf-8') +"\n") 
log() 

或在您的方法中傳遞消息。

它工作的很好。

+0

'msg.encode('utf-8' )+「\ n」'不適用於Python 3;字符串不會連接到字節。 – Aaron3468