Вывести несколько строк в файл в Python 2.7.3
В настоящее время я пишу программу на python с pyCLIPS.
Модуль clips позволяет мне печатать несколько строк вывода в терминал, просто используя: clips.PrintFacts()
Тем не менее, я хотел бы вывести это в файл, чтобы сохранить результаты. Я использую следующий код:
def Print():
f1=open('/var/log/combined/test.log', 'a')
print >>f1, '- Facts -\n'
print >>f1, clips.PrintFacts()
print >>f1, '\n- Rules -\n'
print >>f1, clips.Print.Rules()
1-я и 3-я команды печати успешно печатают свои строки в файл, но 2-я и 4-я команды печати все еще только выводят результаты клипов в терминал. Ниже приведен пример вывода:
============
root@ubuntu:/home/user/Desktop# python program.py
f-0 (initial-fact)
f-1 (duck)
f-2 (quack)
For a total of 3 facts.
MAIN:
Rule1
Rule2
Rule3
Rule4
Rule5
root@ubuntu:/home/user/Desktop# cat /var/log/combined/test.log
- Facts -
None
- Rules -
None
root@ubuntu:/home/user/Desktop#
============
clips.PrintFacts()
раздел начинается с "F-0", тогда как clips.PrintRules()
начинается с "ГЛАВНАЯ".
заранее спасибо!
2 ответа
Использование a
добавить в файл:
f1 = open('/var/log/combined/test.log', 'a+')
print >>f1, clips.PrintFacts()
Вы перезаписываете каждую строку, используя w
,
(Этот ответ очень спонтанный, и я не знаю, правда ли это, у меня просто есть идея.)
Я думаю, что он пишет каждую строку, но затем пишет еще одну строку поверх него. Вы должны сохранить все в строку (string = string + clips.printFacts()), а затем сохранить это в файл.