2016-04-12 4 views
1

Ich möchte das Beispiel einer Erweiterungsliste verwenden: [".txt", ".html", ".css" ] zum Speichern als Option im Dateidialog-Popup-Fenster. Wenn ich diese Methode Ich möchte die Erweiterungsliste zum Zeitpunkt der "Speichern unter" -Option im Dateidialog zum Schreiben von Dateien in Python 3 verwenden.

 
file_opt = options = {} 
options['defaultextension'] = '.txt'
benutze, kann ich jede Datei mit .txt als Standarderweiterung schreiben, ohne in Speichern als Option zu wählen, aber ich möchte Erweiterungen zum Speichern als im Dateidialog-Popup-Fenster von der Verwendung meiner Erweiterungsliste wählen. Ich verwende Python 3.5 basierte Anaconda IDE

+0

Um bessere Hilfe zu erhalten, sollten Sie den Code, der den Dateidialog anzeigt, veröffentlichen. Abgesehen von dem "tkinter" -Tag in Ihrer Frage gibt es keine Möglichkeit zu wissen, welche Werkzeuge Sie verwenden. – slezica

Antwort

1

Wenn man sich die here Dokumentation können Sie sehen, dass Sie in der filetypes Schlüsselwort, das eine Liste von Tupeln angibt, die den Namen haben, und die Dateierweiterung jeweils für die passieren kann verschiedene Arten von Dateitypen möchten Sie in der Lage sein, wie .. speichern so können Sie entlang der Linien von etwas tun:

import tkinter as tk 
from tkinter import filedialog as fd 

def save_file(): 

    filename = fd.asksaveasfilename(defaultextension='.txt', 
     filetypes= [('Text','.txt'), ('HTML', '.html'), ('CSS', '.css')]) 
    if filename: 
     print("User saved the filename with extension:", filename.split(".")[-1]) 

root = tk.Tk() 
button = tk.Button(root, text='Save File', command=save_file) 
button.pack() 
root.mainloop() 

Oder wenn Sie wirklich wollen, ein Wörterbuch für diesen Einsatz:

import tkinter as tk 
from tkinter import filedialog as fd 

SAVE_OPTS = {'defaultextension':'.txt', 
      'filetypes': [('Text','.txt'), ('HTML', '.html'), ('CSS', '.css')]} 

def save_file(): 

    filename = fd.asksaveasfilename(**SAVE_OPTS) 
    if filename: 
     print("User saved the filename with extension:", filename.split(".")[-1]) 

root = tk.Tk() 
button = tk.Button(root, text='Save File', command=save_file) 
button.pack() 
root.mainloop() 
+0

Es funktioniert, Danke für die Antwort! Aber ich kann diese Antwort nicht als nützlich ankreuzen, weil ich keinen Ruf habe und es erfordert 15. Aber nochmal Danke an dich! –

Verwandte Themen