热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3中选择文件对话框的格式打开和保存图片

本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。
tkinter.filedialog.asksaveasfilename()   # 选择以什么文件名保存,返回文件名
tkinter.filedialog.askopenfilename()     # 选择打开什么文件,返回文件名

有时候我们想要以选择文件对话框的格式打开一张图片或者保存图片,我在尝试之后把我的代码分享给大家作为参考:

打开一张图片并显示

root = tkinter.Tk()    # 创建一个Tkinter.Tk()实例
root.withdraw()       # 将Tkinter.Tk()实例隐藏
default_dir = r"文件路径"
file_path = tkinter.filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser(default_dir)))
image = Image.open(file_path)
plt.imshow(image)
plt.show()

只需要在弹出对话框后选择要打开的图片就可以了。如下图所示:
python3中选择文件对话框的格式打开和保存图片

保存图片

fname = tkinter.filedialog.asksaveasfilename(title=u'保存文件', filetypes=[("PNG", ".png")])
picture.save(str(fname) + '.png', 'PNG')

只需要在弹出对话框后选择保存位置,输入图片名字即可。如下图所示:
python3中选择文件对话框的格式打开和保存图片

【注】如果不加以下两行代码:

root = tkinter.Tk()    # 创建一个Tkinter.Tk()实例
root.withdraw()       # 将Tkinter.Tk()实例隐藏

程序运行后将会出现以下一个小框:

python3中选择文件对话框的格式打开和保存图片

参考自 https://blog.csdn.net/weixin_40283816/article/details/83387965

https://blog.csdn.net/sinat_41104353/article/details/79323064 

我的测试:

eg1:打开文件夹保存图片
 

import cv2
from tkinter import *
import tkinter.filedialog
root = tkinter.Tk()    # 创建一个Tkinter.Tk()实例
root.withdraw()       # 将Tkinter.Tk()实例隐藏
fname = tkinter.filedialog.asksaveasfilename(title=u'保存文件', filetypes=[("jpg", ".png")])
a=cv2.imread('15.jpg')
cv2.imwrite(str(fname) + '.png',a)

eg2:打开文件夹保存csv文件

from tkinter import *
import tkinter.filedialog
root = tkinter.Tk()    # 创建一个Tkinter.Tk()实例
root.withdraw()       # 将Tkinter.Tk()实例隐藏
fname = tkinter.filedialog.asksaveasfilename(title=u'保存文件', filetypes=[("csv", ".CSV")])
fname=fname+'.csv'
# coding: utf-8
import csv
import pandas as pd
csvfile = open(fname, 'w')  #打开方式还可以使用file对象
name=['姓名', '年龄', '电话']
list1 = [
    ('小河', '25', '1234567'),
    ('小芳', '18', '789456')
]
test=pd.DataFrame(columns=name,data=list1)
test.to_csv(fname)

eg3:
 

import pandas as pd
from tkinter import *
import tkinter.filedialog
root = tkinter.Tk()    # 创建一个Tkinter.Tk()实例
root.withdraw()       # 将Tkinter.Tk()实例隐藏
fname = tkinter.filedialog.asksaveasfilename(title=u'保存文件', filetypes=[("csv", ".CSV")])
fname=fname+'.csv'
X_lst=[-0.0, 0.1, -0.4, 0.2, 0.0, -0.4, 0.1, 0.2, -0.2, 0.1]
Y_lst=[0.7, 1.0, 0.6, 1.0, 0.9, 1.3, 0.9, 0.5, 1.1, 0.5]
date_lst=['2019-03-02 16:29:51', '2019-03-02 16:29:51', '2019-03-02 16:29:51',
          '2019-03-02 16:29:51', '2019-03-02 16:29:51', '2019-03-02 16:29:51',
          '2019-03-02 16:29:51', '2019-03-02 16:29:51', '2019-03-02 16:29:52',
          '2019-03-02 16:29:52']
data_csv=[]
for i in zip(date_lst,X_lst,Y_lst):
    data_csv.append(i)
print(data_csv)
name=['0Time', '0X', '0Y']
test=pd.DataFrame(columns=name,data=data_csv)
test.to_csv(fname)

 


推荐阅读
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 解决Anaconda安装TensorFlow时遇到的TensorBoard版本问题
    本文介绍了在使用Anaconda安装TensorFlow时遇到的“Could not find a version that satisfies the requirement tensorboard”错误,并提供详细的解决方案,包括创建虚拟环境和配置PyCharm项目。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ... [详细]
  • 社交网络中的级联行为 ... [详细]
  • Android Studio 中 Activity 组件详解
    本文介绍了 Android 开发中 Activity 的基本概念、生命周期、状态转换以及如何创建和管理 Activity。通过详细的解释和示例代码,帮助开发者更好地理解和使用 Activity。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 本文详细介绍了Python中函数的基本概念,包括函数的定义与调用、文档注释、参数传递(形参与实参)、返回值以及函数嵌套。通过具体示例和解释,帮助读者掌握函数在编程中的应用。 ... [详细]
  • 使用lambda表达式排序Collections.sort(temp,(Stringa,Stringb)-{returnb.compareTo(a);});Collections ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 本文详细介绍了如何在MFC(Microsoft Foundation Classes)应用程序中使用树形控件(Tree Control)。通过创建基于对话框的应用程序,并逐步添加和配置树形控件,最终实现带有图标的树形结构。 ... [详细]
  • 本文介绍如何利用QFileSystemModel进行目录的浏览、创建及删除操作,并提供了一个简单的对话框界面实现。 ... [详细]
author-avatar
大大炮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有