Я пытаюсь сохранить файл из окна tkinter python с помощью приглашения «Сохранить как». Я искал какое-то время и не могу найти ответ, который я ищу. Я могу успешно сохранить информацию в файл с именем по умолчанию и даже сохранить его с помощью имени пользователя, вводимого через input(), однако это не то, что я пытаюсь сделать. Я хочу, чтобы пользователь мог нажать «Сохранить как», а затем, когда появится приглашение, они вводят имя файла и сохраняют его как имя, я просто не могу найти ответ нигде. Вот мой код в данный момент:Python: Сохранение файла на основе ввода пользователем
# Import Tkinter
from tkinter import *
import os
import pickle
from tkinter.filedialog import askopenfilename, asksaveasfile
from tkinter.messagebox import *
MainWindow = Tk()
MainWindow.geometry("600x400")
MainWindow.attributes("-alpha", 1)
MainWindow.title(string="Hours Log")
CurrentDirect=os.getcwd()
def FileSaveAs():
fname = asksaveasfile(initialdir=CurrentDirect ,filetypes=(("Text Files", "*.txt"),
("All files", "*.*")))
if fname:
try:
print(fname)
SH = SHVar.get()
SM = SMVar.get()
SAP = SAPVar.get()
EH = EHVar.get()
EM = EMVar.get()
EAP = EAPVar.get()
DM = DMVar.get()
DD = DDVar.get()
DY = DYVar.get()
DE = Description.get("1.0", END)
AP = APVar.get()
with open("filename.txt", 'wb') as f:
pickle.dump([SH, SM, SAP, EH, EM, EAP, DM, DD, DY, DE, AP], f)
except:
showerror("FILE SAVE ERROR", "Error on Saving File!\n'%s'" % fname)
return
Я понимаю, что «filename.txt» это имя файла для сохранения, однако, как я приобретаю имя переменной из командной строки?
ПРИМЕЧАНИЕ. В этом коде нет ошибок, он отлично работает с остальной частью моей программы.
Это сработало, спасибо! Я просто изменил строки из: 'имя_файла = asksaveasfile (...' ' с открытым ("Filename.txt", 'термометр'), как F:' к: 'имя_файл = asksaveasfilename (...' 'с открытым (filename +". Txt ", 'wb') как f:' Это всегда сипсовые, которые меня достают. –