Я хочу печатать мою сводную статистику иногда в консоли, а иногда и в Word.
Я не хочу, чтобы мой код был завален строками, обращающимися к Word, потому что тогда мне нужно было бы искать и комментировать, как 100 строк, каждый раз, когда я просто хотел вывод на консоль.
Я думал об использовании флаговой переменной спереди и об изменении ее на false, когда я хотел печатать, а не нет, но это тоже хлопотно.
Лучшее решение, которое я нашел, - написать отдельный скрипт, который открывает документ, пишет, вызывая мой первый скрипт сводной статистики, а затем закрывает документ:
import sys
import RunSummaryStats
from docx import Document
filename = "demo.docx"
document = Document()
document.save(filename)
f = open(filename, 'w')
sys.stdout = f
# actually call my summary stats script here: Call RunSummaryStats etc.
print("5")
f.close()
Однако, когда я попытался сделать выше с python docx
, при открытии моего файла документов я получил ошибку We're sorry, we can't open this document because some parts are missing or invalid.
Как вы можете видеть код выше просто распечатал одно число, так что это не может быть проблемой с данные, которые я пытаюсь записать.
Наконец, для форматирования некоторых таблиц данных необходимо перейти к Word, а не к другим форматам файлов.
Кстати, это выдержка из RunSummaryStats. Вы можете видеть, как он уже заполнен печатными строками, которые полезны, когда я все еще исследую данные, и от которых я не хочу избавляться / заменять добавлением в список: