夜!随着应用程序功能的扩展,有必要将程序的结果保存在一个小的文本报告中,为此我使用了以下函数:
def save_report():
filepath = asksaveasfilename(
defaultextension="txt",
filetypes=[("Текстовые файлы", "*.txt"), ("HTML файлы", "*.html")]
)
if not filepath:
return
with open(filepath, "w", encoding="UTF-8") as output_file:
pt_name = patientName_entry.get()
pt_date = patientDate_entry.get()
pt_sex = patientSelectSex.get()
vl_manifestation = manifestationSelect.get()
vl_hearth = hearthSelect.get()
vl_transformation = transformationSelect.get()
vl_deficit = deficitSelect.get()
vl_infarct = infarctSelect.get()
vl_thrombolysis = thrombolysisSelect.get()
vl_conclusion = conclusion.cget("text")
locale.setlocale(locale.LC_ALL, '')
report_date = datetime.now()
report_date = report_date.strftime('%d %B %Y')
text_report = (
f'Assessing the risk of surgical intervention in stroke (ARSiS) report.\n'
f'=====================================================================\n'
f'отчет сформирован: {report_date}\n\n'
f'ПАЦИЕНТ:\n{pt_name}\n'
f'Дата рождения: {pt_date}\n'
f'Пол: {pt_sex}\n'
f'---------------------------------------------------------------------\n\n'
f'АНАМНЕЗ / ДАННЫЕ ИССЛЕДОВАНИЙ:\n'
f'1. Время с момента манифестации первых симптомов неврологического дефицита:\n'
f' -> {vl_manifestation}\n\n'
f'2. Очаг ишемического инсульта в любом из диаметров, по данным КТ или МРТ головного мозга:\n'
f' -> {vl_hearth}\n\n'
f'3. Геморрагическая трансформация ишемического очага в головном мозге:\n'
f' -> {vl_transformation}\n\n'
f'4. Неврологический дефицит:\n'
f' -> {vl_deficit}\n\n'
f'5. Острый инфаркт миокарда:\n'
f' -> {vl_infarct}\n\n'
f'6. Состояние после тромболитической терапии:\n'
f' -> {vl_thrombolysis}\n'
f'---------------------------------------------------------------------\n\n'
f'ЗАКЛЮЧЕНИЕ:\n'
f'{vl_conclusion}'
)
output_file.write(text_report)
一切正常,但我希望在保存到文件时,名称是根据变量的值自动形成patientName_entry
的patientDate_entry
。变量本身是用户手动输入数据的文本字段。结果应该是这样的:
但我不明白如何实现这一点。作为指导,我使用了这个问题的材料。
注意Native Load/Save Dialogs中的
initialfile=
和:initialdir=
感谢 Stanislav Volodarskiy 的回答,我们成功地实现了我们的目标。下面是一个工作函数。也许有人会派上用场。