python:为什么不在新行上写入文件?

use*_*709 1 python file python-3.x

def log():
    with open("log.txt", 'a') as f:
        print ".log.txt"
        f.write(msg.encode('utf-8') +"\n")
Run Code Online (Sandbox Code Playgroud)

我多次调用log()但是没有在新行上写每个msg,我也不知道为什么.我尝试在最后添加f.close(),但这也不起作用.超级沮丧!

mar*_*tin 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')
Run Code Online (Sandbox Code Playgroud)

然后:

$ python test.py 
$ cat log.txt 
aaa
bbb
Run Code Online (Sandbox Code Playgroud)