Tkinter filedialog с заявлением

Я хотел бы сохранить файл. По этой причине я использую filedialog с оператором 'with'. Пока я выбрал файл и сохранил его, все работает нормально. Однако, когда filedialog отменен, я получаю следующую ошибку:

Файл "...\src\test.py", строка 7, с файлом filedialog.asksaveasfile(mode='w') как myFile: AttributeError: enter

Есть ли работа для достижения этой цели с помощью выражения "с"?

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()

with filedialog.asksaveasfile(mode='w') as myFile:
    myFile.write('Test')

root.mainloop()

1 ответ

Спасибо за разъяснения, цвер. Я думаю, что блок try...finally является наиболее удобным решением для моих целей. Я преодолею проблему следующим образом:

import tkinter as tk
from tkinter import filedialog

def Test():        
    root = tk.Tk()

    myFile = filedialog.asksaveasfile(mode='w')

    if not myFile:
        return        
    try:
        myFile.write('Test')
    finally:
        myFile.close()

    root.mainloop()


Test()
Другие вопросы по тегам