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

时间:2016-02-23 08:54:15

标签: python file python-3.x

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

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

2 个答案:

答案 0 :(得分: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 :(得分:-1)

你没有给出消息。

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

或传递方法中的msg。

工作正常。