Python Tkinter filedialog using asksaveasfile()

filedialog.asksaveasfile create a modal, native look-and-feel dialog for user to save file in local system. .
from tkinter import filedialog
from tkinter.filedialog import asksaveasfile
File Save Browser
Displaying save as file browser to Save file in Tkinter window using filedialog asksaveasfilename
Here is the code to open one file browser dialog box and then user has to enter the file name. Sample data ( small string ) will be saved inside the file.
import tkinter as tk
from tkinter import filedialog
from tkinter.filedialog import asksaveasfile
my_w = tk.Tk()
my_w.geometry("400x300")  # Size of the window 
my_w.title('www.plus2net.com')
my_font1=('times', 18, 'bold')
l1 = tk.Label(my_w,text='Save File',width=30,font=my_font1)  
l1.grid(row=1,column=1)
b1 = tk.Button(my_w, text='Save', 
   width=20,command = lambda:save_file())
b1.grid(row=2,column=1) 
def save_file():
    file = filedialog.asksaveasfilename(
        filetypes=[("txt file", ".txt")],
    defaultextension=".txt")
    fob=open(file,'w')
    fob.write("Welcome to plus2net")
    fob.close()
my_w.mainloop()  # Keep the window open
Data is saved in the file

options : initialdir

We can set the initial directory to be show to user by default. User can change to any other location.
file = filedialog.asksaveasfilename(
        filetypes=[("txt file", ".txt")],
    defaultextension=".txt",
    initialdir='D:\\my_data\\my_html\\')

title

Displayed at top left corner as title
title of File Save Browser
    file = filedialog.asksaveasfilename(
        filetypes=[("txt file", ".txt")],
    defaultextension=".txt",
    initialdir='D:\\my_data\\my_html\\',
    title='Save as plus2net')

filetypes

Save as types option will list these filetypes.
    file = filedialog.asksaveasfilename(
        filetypes=[("txt file", ".txt"),
               ("csv file","*.csv")]),
    defaultextension=".txt",
    initialdir='D:\\my_data\\my_html\\')

defaultextension

The default file extension to append the file name.
    file = filedialog.asksaveasfilename(
        filetypes=[("txt file", ".txt")],
    defaultextension=".txt",
    initialdir='D:\\my_data\\my_html\\',
    title='Save as plus2net')

difference between asksaveasfile() and asksaveasfilename()

The function asksaveasfilename() returns the selected file name. ( path as string ).
The function asksaveasfile() returns the opened file object in given mode. ( mode='w')
In above code both can be used and watch the commented part of the code below for comparison of both functions. In both cases output is same.
def save_file():
    fob = filedialog.asksaveasfile(defaultextension=".txt",mode='w')
    #fob = filedialog.asksaveasfilename(defaultextension=".txt")
    #fob=open(fob,'w') # creates file object
    fob.write("Welcome to plus2net")
    fob.close()

Tkinter Filedialog Treeview askopenasfile()


plus2net.com



Post your comments , suggestion , error , requirements etc here





Python Video Tutorials
Python SQLite Video Tutorials
Python MySQL Video Tutorials
Python Tkinter Video Tutorials
We use cookies to improve your browsing experience. . Learn more
HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
©2000-2021 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer