2016-02-23 185 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