当用户更改时,Python更改文件扩展名保存为asksaveasfilename中的类型

时间:2015-12-10 13:52:45

标签: python user-interface tkinter

我正在使用python tkinter创建一个简单的日志程序,允许用户在Text小部件内写入文本,并使用该文件作为“日志”将其保存到文件中。使用asksaveasfilename我可以保存文件,但不会使用文件扩展名保存文件。我意识到你可以使用.defaultextension,但我希望用户使用他们选择的扩展名保存文件。这是我的代码:

from datetime import datetime
now = datetime.now()
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from tkinter import font

journal_name = ""

def save_journal():
    journal_name = filedialog.asksaveasfilename(filetypes = [("Text file", ".txt"), ("Python file", ".py"), ("All Types", ".*")])
    file = open(journal_name, "a")
    file.write("%s/%s/%s" % (now.month, now.day, now.year))
    file.write("  ")
    file.write(text_box.get("1.0", "end-1c"))
    file.write("\n\n")
    file.close()


#make a gui window

app = Tk()
app.title("Journal Program")
app.iconbitmap(app, "C:\\Program Files (x86)\\Notepad++\\Files\\journalicon.ico")
app.resizable(0,0)


text_font = font.Font(family="Segoe UI", size=11)

#main frame
main_frame = ttk.Frame(app, padding = "5 5 5 5")
main_frame.grid(column=0, row=0, sticky="nsew")


text_box = Text(main_frame, wrap = WORD, height = 15, width = 70, font = text_font)

scrollbar = ttk.Scrollbar(main_frame)
scrollbar.config(command = text_box.yview)

text_box.config(yscrollcommand = scrollbar.set)
text_box.grid(column = 1, columnspan = 3, row = 2, sticky = "es")

scrollbar.grid(column = 4, row = 2, sticky = "ns")

save_button = ttk.Button(main_frame, text = "Save", command = save_journal)
save_button.grid(column = 3, row = 3, sticky = S + E, pady = '5')


app.mainloop()

我想要的是让用户能够从另存为窗口中选择文件类型(例如python),并将其作为保存文件的文件扩展名。我不确定它是否可能,但如果它是我真的很感激帮助,我无法找到任何关于此类事情的信息。

我希望这不是一个堆栈溢出问题的代码。我试图将它缩小到最小程序。此外,我意识到代码可以优化,但我仍在学习python,并试图解决问题。任何关于如何优化此代码的评论或帮助也将非常感激。提前谢谢大家。

0 个答案:

没有答案