Filedialog.asksaveasfile sorunu

Merhaba yazdım program içinde ki değerleri bir butonla kaydetmek istiyorum ancak nerede hata aldığımı anlamadım

import tkinter as tk
from tkinter.filedialog import asksaveasfilename




def save():
       file = filedialog.asksaveasfile(mode="w", defaulttextension=".txt"
       if file is None:
          return
       file.write(f"Msg: {msg}\n")
       file.write(f"Msg: {msg1}\n")
       file.write(f"Kontrol modu: {msg1[11]}\n")
       file.close()
photo5 = ImageTk.PhotoImage(file="paper.png")
b5 = tk.Button(root3, text="Ayarları Kaydet ", bg="white", image=photo5, compound=tk.LEFT, command=save() ,borderwidth=0)
b5.place(relx=0.81, rely=0.03)
root3.mainloop()

Merhaba.

Yaptığınız hataların biri burada anlatılmış:

Sonda parantez yok.

Dosya seçilmediğinde None değil '' döndürülüyor. if not file daha uygun olur.

root3 tanımlanmamış.

Verilen hata mesajında hatanın yerini göstermiyor mu?

1 Beğeni

Ayrıca,

Burada fonksiyonu değil, fonksiyonu çalıştırıp döndürdüğü değeri argüman olarak veriyorsunuz.