Python 3.6: команда новой строки '/ n' игнорируется при записи в файл в AWS Ubuntu - PullRequest
0 голосов
/ 21 декабря 2018

Я искал, но не нашел ответа, который решил мою проблему ...

Я запустил этот код на pythob 3.6.5 в AWS Ubuntu:

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 голосов
/ 21 декабря 2018

Блокнот Windows не распознает конец строки Unix LF до мая 2018 года .Если вы откроете файл в другом текстовом редакторе, например Wordpad или, что еще лучше, в шестнадцатеричном редакторе, вы увидите, что там действительно разрыв строки (в шестнадцатеричном редакторе вы увидите один 0A байт).

Если вы напечатаете \r\n в Python, вы сможете увидеть разрыв строки в Блокноте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...