Die Beschränkung der Datei-Endung gespeichert, wenn Sie tkFileDialog.asksaveasfile
Ich bin derzeit am schreiben eines GUI in python mit Tkinter, wo der Benutzer ist in der Lage zu speichern, die den Zustand der GUI in Ihrem Verzeichnis mit der Erweiterung ".espace".
filename = tkFileDialog.asksaveasfilename(defaultextension=".espace")
Wenn der Benutzer eine andere Datei-Erweiterung, dann wird die Datei gespeichert, mit der Erweiterung, die Sie angegeben. Gibt es trotzdem, dies zu verhindern? So, dass Sie völlig beschränkt auf das speichern der Datei mit der Erweiterung ".espace"?
- Ist es nicht dein code, dass ist eigentlich die Datei öffnen und schreiben? Kannst du nicht einfach prüfen Sie den Wert von
filename
und lösen einen Fehler aus, wenn es nicht korrekt ist. OTOH, wenn der Nutzer will, um ändern Sie den suffix, sollten Sie nicht zulassen, dass zu tun? Es ist Ihre Daten und Ihr system. Als Benutzer wäre ich ziemlich Sauer, wenn ich Sie nicht nutzen konnte, welchen Namen auch immer ich wollte. Wenn Sie wollen, einen anderen Namen, was Sie tun, ist Sie zu zwingen, sparen Sie nach Ihren Regeln und benennen Sie die Datei außerhalb Ihrer Kontrolle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie angeben, Datei-Typ, mit den "Dateitypen" - option. Das folgende Beispiel ändert den Dateityp Dropdown auf das speichern-Dialogfeld .espace und alle Dateien.
Ich habe nicht gefunden, eine option, mit asksaveasfilename zu beschränken, nutzen andere Datei-Erweiterungen. Ich würde denken, Sie könnten schreiben eine Schleife, die würde zwingen den Benutzer zur Verwendung dieser Erweiterung:
("All Files", "*.*")
und nur mitfilename = tkFileDialog.asksaveasfilename(defaultextension=".espace", filetypes=(("espace file", "*.espace"),))
erzwingt die Verlängerung.