当前位置: 首页 > news >正文

【PyQt】下载文件时弹出提示用户选择保存文件位置的对话框

1 需求

在界面软件中,用户点击下载某个文件,此时软件需要提示用户选择保存到电脑的某个位置,然后软件才能将文件保存到用户指定的电脑文件夹中。

2 代码

# 需引入的库
import os
import sys
from PyQt5.QtWidgets import QFileDialogsrc = './data/skb_tmp.xlsx'  # 待下载的模板文件,存放在项目中的data文件夹
fo = open(src, 'rb')  # 只读 二进制 模式打开
with fo:filedata = fo.read()  # 读入内存 filedata变量
fo.close()# 函数返回2个值:文件存放路径,文件类型
# 给用户一个默认文件名myfile.xlsx
destpath, filetype = QFileDialog.getSaveFileName(self, "文件保存", "myfile.xlsx", "Excel工作簿 (*.xlsx)")
if destpath:  # 如果获取的路径非空fi = open(destpath, 'wb')  # 写 二进制 模式创建/写入文件with fi:fi.write(filedata)  # 写入用户电脑fi.close()
else:  # 用户点击取消后的处理,否则程序会出错退出QMessageBox.information(self, "提示", "由于未选择保存位置,文件保存操作已取消")

此代码读写均是采用二进制方式,因此可以适用包括文本文件、音视频文件、图像文件、办公文档、压缩包等在内的一切文件。

也可以由程序指定一个默认的保存位置,只需将 

myfile.xlsx

改为路径全称即可,如下

D:\myfile.xlsx

3 运行效果

对话框效果图。

 用户只需点击保存或者手动选择其他文件夹。

当用户点击取消时,弹出“保存操作取消”的提示框。

相关文章:

【PyQt】下载文件时弹出提示用户选择保存文件位置的对话框

1 需求 在界面软件中,用户点击下载某个文件,此时软件需要提示用户选择保存到电脑的某个位置,然后软件才能将文件保存到用户指定的电脑文件夹中。 2 代码 # 需引入的库 import os import sys from PyQt5.QtWidgets import QFileDialogsrc .…...

工具分享 | PDF文档解析工具PyMuPDF

1 需求描述 最近工作需要从PDF文档中按照章节解析出对应的文本和图片(后续可能还会有表格),经过调研,找到了一个功能强大的解析工具MuPDF,对应的Python包是PyMuPDF。本篇博客记录使用它来实现具体功能。 官方文档:https://pymupd…...

QML Book 学习基础5(An Image Viewer)

目录 桌面版(win端) 移动端 下面我们用更有挑战性例子来使用Qt控件,将创建一个简单的图像查看器。 桌面版(win端) 程序主要由四个主要区域组成,如下所示。菜单栏、工具栏和状态栏,通常由控件…...

解决Jackson解析JSON时出现的Illegal Character错误

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

feign和openfeign的区别

1.OpenFeign介绍 是一个Web声明式的Http客户端远程远程调用工具,底层是封装HttpClient技术,提供接口和注解形式调用。 注意feign客户端调用的事项: a、如果请求参数没有加上注解的话,默认采用post请求发送。 b、服务的名称命名不能…...

Python飞机大战小游戏

游戏规则:键盘上下左右键控制飞机移动 游戏展示图片: 源码: 第一个py命名为:plane_main.py import pygamefrom plane_sprites import *class PlaneGame(object):# """飞机大战主游戏"""def __in…...

【python爬虫】7.爬到的数据存到哪里?

文章目录 前言存储数据的方式存储数据的基础知识基础知识:Excel写入与读取基础知识:csv写入与读取项目:存储周杰伦的歌曲信息 复习 前言 上一关我们以QQ音乐为例,主要学习了如何带参数地请求数据(get请求)…...

Docker 的快速使用

ubuntu安装 centos安装 安装完毕之后执行一下这条命令,可以避免每次使用docker命令都需要sudo权限 sudo usermod -aG docker $USER阿里云docker镜像加速 DockerHub 遇到不懂或者不会使用的命令可以使用docker --help查看文档 docker --help 如: dock…...

Docker consul容器服务自动发现和更新

目录 一、什么是服务注册与发现 二、Docker-consul集群 1.Docker-consul 2.registrator 3.Consul-template 三、Docker-consul实现过程 四、Docker-consul集群配置 1.下载consul服务 2.web服务器启动多例nginx容器,使用registrator自动发现 3.使用…...

MPI内置类型与自定义类型

内置类型 MPI_CHAR: 字符型 MPI_UNSIGNED_CHAR: 无符号字符型MPI_BYTE: 字节型MPI_SHORT: 短整型MPI_UNSIGNED_SHORT: 无符号短整型MPI_INT: 整型MPI_UNSIGNED: 无符号整型MPI_LONG: 长整型MPI_UNSIGNED_LONG: 无符号长整型MPI_FLOAT: 单精度浮点型MPI_DOUBLE: 双精度浮点型M…...

【ES新特性三】Object 原型、原型链相关方法

一、Object 原型、原型链相关方法 1.1 静态方法(Object 调用): Object.setPrototypeOf(obj,prototype) 方法用于设置某个实例对象的原型(可以是null,也可以是一个对象) Object.getPrototypeOf(obj) ​ …...

学习大数据应该掌握哪些基础语言

大数据技术的体系庞大且复杂,每年都会涌现出大量新的技术,目前大数据行业所涉及到的核心技术主要就是:数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 学习大数据需要掌握什么语言基础? 1、Java基础 大数据框架90%以…...

Kubernetes技术--k8s核心技术 ingress

1.引入 我们之前在部署应用(如nginx)的时候,如果你需要外部进行访问,使用的是service中的nodePort方式进行对外的暴露。然后外部就可以使用ip + 端口号来进行访问部署应用。 其实这一种方式是存在着较为明显的缺陷,每一个端口你只能够使用一次,一个端口对应一个应用,而且访…...

中级深入--day15

案例:使用BeautifuSoup4的爬虫 我们以腾讯社招页面来做演示:搜索 | 腾讯招聘 使用BeautifuSoup4解析器,将招聘网页上的职位名称、职位类别、招聘人数、工作地点、发布时间,以及每个职位详情的点击链接存储出来。 # bs4_tencent.p…...

内存四区(个人学习笔记黑马学习)

1、内存分区模型 C程序在执行时,将内存大方向划分为4个区域: 代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程…...

如何使用RPA + ChatGPT自动化提高自己的工作效率

使用RPA(Robotic Process Automation)和ChatGPT可以结合来自动化提高自己的工作效率。下面是一些步骤: (1)确定自动化任务 首先,需要确定哪些任务或工作流程可以通过自动化来提高效率。这些任务应该是重复…...

uni-app之android项目配置和打包

1,项目根目录,找到mainfest.json,如果appid是空的,需要生成一个appid 2,点击重新获取appid,这个时候需要登录,那就输入账号密码登录下 3,登陆后可以看到获取appid成功 4,…...

go语言配置

1、Go语言的环境变量 与Java等编程语言一样,安装Go语言开发环境需要设置全局的操作系统环境变量(除非是用包管理工具直接安装) 主要的系统级别的环境变量有两个: (1)GOROOT:表示Go语言环境在计算机上的安…...

【深度学习】ChatGPT

本文基于Andrej Karpathy(OpenAI 联合创始人,曾担任特斯拉的人工智能和自动驾驶视觉主管)在Microsoft Build 2023上的演讲整理而成(完整的视频在文末,直接拖到文章底部),主要分为2大部分: 1.如何训练GPT(可…...

爬虫--爬取自己想去的目的的车票信息

前言: 本篇文章主要作为一个爬虫项目的小练习,来给大家进行一下爬虫的大致分析过程以及来帮助大家在以后的爬虫编写中有一个更加清晰的认识。 一:环境配置 Python版本:3.7 IDE:PyCharm 所需库:requests&#xff0…...

Pixel Aurora Engine实战落地:为像素RPG自动生成NPC对话头像与场景贴图

Pixel Aurora Engine实战落地:为像素RPG自动生成NPC对话头像与场景贴图 1. 像素游戏开发者的新利器 想象一下这样的场景:你正在开发一款像素风格的RPG游戏,需要为上百个NPC设计独特的对话头像,还要制作大量场景贴图。传统方法下…...

魔兽争霸3帧率优化与性能调优指南:从卡顿到高流畅度的开源解决方案

魔兽争霸3帧率优化与性能调优指南:从卡顿到高流畅度的开源解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 在现代硬件环境下运行经…...

Qwen3-TTS开源大模型效果展示:俄文/葡萄牙文/意大利文等小语种高自然度语音生成

Qwen3-TTS开源大模型效果展示:俄文/葡萄牙文/意大利文等小语种高自然度语音生成 你听过AI用俄语讲普希金的诗吗?或者用意大利语念一段歌剧台词?过去,想让AI生成地道的小语种语音,要么音色机械,要么口音奇怪…...

ComputeSharp未来展望:GPU计算在.NET生态中的发展路线图

ComputeSharp未来展望:GPU计算在.NET生态中的发展路线图 【免费下载链接】ComputeSharp A .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders, with the goal of making GPU comp…...

驯服中点电位:I型NPC三电平逆变器离网系统建模与动态平衡策略

1. I型NPC三电平逆变器的中点电位难题 搞电力电子的兄弟们都知道,中点钳位型(NPC)三电平逆变器有个让人又爱又恨的特点——中点电位漂移。这就像你骑自行车时突然发现车把不听使唤,明明直线行驶却总往一边偏。在离网系统中&#x…...

一键部署后的第一步:LiuJuan20260223Zimage API调用详解与调试

一键部署后的第一步:LiuJuan20260223Zimage API调用详解与调试 刚在星图GPU平台上一键部署好LiuJuan20260223Zimage镜像,看着运行状态显示“正常”,是不是感觉离用上强大的AI能力只差临门一脚了?别急,这最后一步——学…...

@rc-component/slider拖拽轨道功能解析:提升用户体验的5个技巧

rc-component/slider拖拽轨道功能解析:提升用户体验的5个技巧 【免费下载链接】slider React Slider 项目地址: https://gitcode.com/gh_mirrors/sl/slider rc-component/slider是一款功能强大的React滑块组件,其拖拽轨道功能为用户提供了直观便捷…...

OpenClaw 的核心组件有哪些?请描述它们之间的关系

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录一、🍀OpenClaw 核心组件详解1.1 ☘️…...

百考通:AI全流程智能化赋能,让每一份调研与设计都高效落地

在数字化时代,市场调研、产品设计、学术研究等场景中,问卷设计作为核心环节,直接影响着数据收集的质量与工作推进的效率。传统问卷设计往往面临流程繁琐、耗时耗力、问题设计不精准等痛点,而百考通(https://www.baikao…...

【esp32使用jtag下载和调试 Can‘t perform JTAG flash, because OpenOCD server is not running!】

ESP-IDF使用USB的JTAG下载调试时报错现象。 2026年初尝试了很多方法jtag下载,网上很多资料都有问题,以下实操烧录成功过程记录。 提示: Can’t perform JTAG flash, because OpenOCD server is not running! ❌ Error: libusb_open() faile…...