2012-01-26 4 views
2

Я пытаюсь добавить новую строку перед меткой даты в файле журнала.Новая строка в файле журнала

у меня есть:

Открыть файл журнала:

f = open("C:\Users\user\Desktop\Log.file") 

Добавить новую строку перед датой "25/01/2012" (однозначно идентифицирует каждую строку журнала).

f.write("\n" + "25/01/2012") 

Ошибка:

Traceback (most recent call last): 
File "<pyshell#4>", line 1, in <module> 
    f.write('\n' + "25/01/2012") 
IOError: File not open for writing 
+0

Вы хотите, чтобы вы вставляли строку в середине файла? –

ответ

2
f = open("C:\Users\user\Desktop\Log.file","w"); 

по умолчанию «г» предполагается, т.е. чтение docs here

Примечание: «ш» перезаписывает существующий файл. Используйте 'а' для добавления

+0

Спасибо за это. Вы первыми отметили, что «w» перезапишет весь файл, что, конечно же, не то, что я хотел сделать. К счастью, я сделал копию и заметил ваш ответ. – Federer

+0

@malcmcmul Хорошо понял спасибо :-) - Предлагаю вам посмотреть ответ от «Cédric Julien», поскольку он содержит некоторые другие комментарии относительно правильного ведения журнала. – ManseUK

6

Как показано в документации питона для open(), режим по умолчанию «г» для чтения, а не для «W» для записи. Попробуйте использовать:

f = open("C:\Users\user\Desktop\Log.file", 'a') 

, чтобы открыть файл журнала для записи (а не стирать его, если он уже существует)

Что касается вашей конечной цели, которая регистрирует в файлах, вы посмотрите к logging module, который позволит вам форматировать всю запись журнала с датой, уровнем, PID и многими полезными вещами?

Смежные вопросы