Tkinter学习笔记(一):完成文件选择和保存对话框

简介: 关于如何使用Python的Tkinter库来创建文件选择和保存对话框的教程。

关键模块总结

  • 导入关键包tkinter
  • 打开文件:askopenfilename
  • 打开多个文件:askopenfilenames
  • 保存文件:asksaveasfilename

打开文件

def open_file():
    global file_path
    global file_text
    file_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser('')))
    print('打开文件:', file_path)
    if file_path is not None:
        lb.config(text = "您选择的文件是:"+file_path)
        with open(file=file_path, mode='r+', encoding='utf-8') as file:
            file_text = file.read()
        text1.insert('insert', file_text)

保存文件

def save_file():
    global file_path
    global file_text
    file_path = filedialog.asksaveasfilename(title=u'保存文件')
    print('保存文件:', file_path)
    lb.config(text="您保存的文件是:" + file_path)
    file_text = text1.get('1.0', tk.END)
    if file_path is not None:
        with open(file=file_path, mode='a+', encoding='utf-8') as file:
            file.write(file_text)
        text1.delete('1.0', tk.END)
        dialog.Dialog(None, {'title': 'File Modified', 'text': '保存完成', 'bitmap': 'warning', 'default': 0,
                             'strings': ('OK', 'Cancle')})
        print('保存完成')

完整代码

# !# !/user/bin/env Python3
# -*- coding:utf-8 -*-
import tkinter as tk
from tkinter import filedialog, dialog, Label
import os

def open_file():
    global file_path
    global file_text
    file_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser('')))
    print('打开文件:', file_path)
    if file_path is not None:
        lb.config(text = "您选择的文件是:"+file_path)
        with open(file=file_path, mode='r+', encoding='utf-8') as file: # 只读
            file_text = file.read()
        text1.insert('insert', file_text)

def save_file():
    global file_path
    global file_text
    file_path = filedialog.asksaveasfilename(title=u'保存文件')
    print('保存文件:', file_path)
    lb.config(text="您保存的文件是:" + file_path)
    file_text = text1.get('1.0', tk.END)
    if file_path is not None:
        with open(file=file_path, mode='a+', encoding='utf-8') as file: # 追加
            file.write(file_text)
        text1.delete('1.0', tk.END)
        dialog.Dialog(None, {'title': 'File Modified', 'text': '保存完成', 'bitmap': 'warning', 'default': 0,
                             'strings': ('OK', 'Cancle')})
        print('保存完成')

if __name__ == '__main__':
    window = tk.Tk()
    lb = Label(window,text = '')
    lb.pack()
    window.title('窗口标题')  # 标题
    window.geometry('500x500')  # 窗口尺寸
    text1 = tk.Text(window, width=50, height=10, bg='red', font=('Arial', 12))
    text1.pack()
    bt1 = tk.Button(window, text='打开文件', width=15, height=2, command=open_file)
    bt1.pack()
    bt2 = tk.Button(window, text='保存文件', width=15, height=2, command=save_file)
    bt2.pack()
    window.mainloop()  # 显示

运行效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

目录
相关文章
|
10月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
861 3
自定义QTableView右键弹出菜单, 并复制选中的单元格内容到剪贴板中
自定义QTableView右键弹出菜单, 并复制选中的单元格内容到剪贴板中
931 0
|
6月前
|
安全 Shell
关于双击桌面上的IE图标却显示“打开方式”对话框的解决办法
关于双击桌面上的IE图标却显示“打开方式”对话框的解决办法
|
8月前
|
JavaScript
vue实现点击按钮将指定文字复制到系统剪切板并提示复制成功
vue实现点击按钮将指定文字复制到系统剪切板并提示复制成功
50 0
|
10月前
|
存储 Python
Tkinter: 选项按钮与复选框
Tkinter: 选项按钮与复选框
C# “文件选择对话框“ 和 “保存对话框“
C# “文件选择对话框“ 和 “保存对话框“
|
C#
wpf 复制/剪切到本地系统剪切板中以供右键粘贴用
原文:wpf 复制/剪切到本地系统剪切板中以供右键粘贴用   http://www.cnblogs.com/yhdkzy/archive/2012/11/27/2790655.html   ///         /// 复制或剪切文件到剪切板         /// ...
1278 0
|
Java
swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)
swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)
372 0
swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)
点击abap的选择屏幕工具栏按钮下载excel模板
自己编写一个report,分配了事务码以后,执行该事务码,在选择屏幕界面看到一个按钮,点击这个按钮,就可以将预先上传至sap服务器的excel文件下载到本地。服务器上的excel文件是预先通过事务码SMW0上传到SAP服务器系统的:选择包,然后执行,看看里面有什么如下图,就是目前SAP系统中存在的e.
2854 0
|
图形学 Windows
Unity调用Windows对话框保存时另存为弹框
Unity开发VR之Vuforia 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
1275 0