Python 3.6:在AWS Ubuntu上写入文件时,新行命令'/ n'被忽略

时间:2018-12-21 12:29:31

标签: python python-3.x ubuntu

我已经搜索了,但是没有找到解决我问题的答案...

我在AWS Ubuntu的pythob 3.6.5上运行了这段代码:

from datetime import datetime

def log_to_txt(msg, filename='log_files/logcheck' + str(datetime.now().date()) + '.txt'):
    with open(filename, 'a+') as f:
        f.write(msg)
    f.close()

msg = 'hello\nworld'

log_to_txt(msg)
print(msg + '\nwas logged')

当我在控制台中运行代码时,它工作正常,这是输出:

[ec2-user@ip-**** cta]$ python log_check.py
hello
world
was logged

但是当我在记事本中打开文本文件时,只是:

helloworld

我注意到的另一件事是,当我在Windows 10上使用Python 3.6.2运行代码时,一切正常,无论是打印到控制台还是log.txt文件

如果有人可以帮助我,将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

Windows记事本无法理解以until May 2018结尾的Unix LF行。如果您在另一个文本编辑器(例如Wordpad或更高级的十六进制编辑器)中打开文件,您会发现那里确实有换行符(在十六进制编辑器中,您将看到一个0A字节)。

如果您使用Python打印\r\n,则可以在记事本中看到换行符。

相关问题