iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python PyQt5如何实现文件拷贝器
  • 445
分享到

Python PyQt5如何实现文件拷贝器

2023-06-25 13:06:12 445人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python PyQt5如何实现文件拷贝器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。UI设置def ui_init(self):   

这篇文章将为大家详细讲解有关python PyQt5如何实现文件拷贝器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

UI设置

def ui_init(self):        '''        界面的函数        '''        self.setWindowTitle('拷贝器')        self.resize(600,400)        self.setMinimumSize(600,400) # 设置窗口的最小值        '''控件'''        self.root_btn = QPushButton()        self.copy_btn = QPushButton()        self.start_btn = QPushButton()        self.root_text = QTextBrowser()        self.copy_text = QTextBrowser()        self.log = QTextBrowser()        self.h2_layout = QHBoxLayout()        self.h3_layout = QHBoxLayout()        self.h4_layout = QHBoxLayout()        self.v_layout = QVBoxLayout()        self.progerss =QProgressBar()        self.finish_sound = QSound(':resource/finish.wav') # 设置提示音        '''控件设置'''        self.root_btn.setText('选择文件夹')        self.root_btn.setFixedSize(150,30)        self.copy_btn.setText('选择拷贝路径')        self.copy_btn.setFixedSize(150,30)         self.start_btn.setText('开始')        self.start_btn.setFixedSize(50,30)        self.root_text.setFixedHeight(27)        self.copy_text.setFixedHeight(27)        self.progerss.setValue(0)        '''控件摆放'''        self.h2_layout.addWidget(self.root_text)        self.h2_layout.addWidget(self.root_btn)        self.h3_layout.addWidget(self.copy_text)        self.h3_layout.addWidget(self.copy_btn)        self.h4_layout.addWidget(self.progerss)        self.h4_layout.addWidget(self.start_btn)        self.v_layout.addLayout(self.h2_layout)        self.v_layout.addLayout(self.h3_layout)        self.v_layout.addWidget(self.log)        self.v_layout.addLayout(self.h4_layout)        self.setLayout(self.v_layout)

这次加入了一个完成的音效

  • QSound解析文件时,可能会出现这问题QSoundEffect(qaudio): Error decoding source

self.finish_sound = QSound('resource/finish.wav') # 设置提示音 原来这这样写的,但会出现上面的问题,就在写一个qrc文件,再将qrc文件转成py文件,再引入这个py文件,这样就可以使用了。在使用这个音频只需要在路径上加一个 : ,就如这样self.finish_sound = QSound(':resource/finish.wav') # 设置提示音

  • qrc文件转py文件

先新建一个txt文件,在向里面写入这样的语句:

<RCC><qresource prefix ="resource/"><file alias="finish.wav">resource/finish.wav</file></qresource></RCC>

resource/是放音频的文件夹名
finish.wav是音频名
resource/finish.wav是完整音频路径
接着将文件后缀改为qrc,在利用cmd命令窗中键入pyrcc5 -o resource.qrc resource.py,将.qrc文件转成.py文件。

主要逻辑

def variates_init(self):        '''        储存变量的函数        '''        self.root_path = '' # 要拷贝的路径        self.copy_path = '' # 要拷贝到的路径        self.file_list = [] # 文件名集合        self.len = 0 # 文件夹下文件数量def copy_file(self):        '''        拷贝文件的函数        '''        count = 0 # 临时设置进度条数值        self.progerss.setRange(0,self.len) # 设置进度条的数值        self.progerss.setValue(0) # 设置进度条初始值        '''拷贝器主逻辑'''        for file in self.file_list:            root_path = self.root_path + "/" + file            copy_path = self.copy_path + "/" + file            with open(root_path, "rb") as root_file:                with open(copy_path, "wb") as copy_file:                    while True:                        data = root_file.read(1024)                        if data:                            copy_file.write(data)                        else:                            count += 1                             self.progerss.setValue(count)                            break    def dir_file(self):        '''        遍历目录的函数        '''        filelist = os.listdir(self.root_path)        self.file_list = filelist    def len_file(self):        '''        文件数量的函数        '''        self.len=len(self.file_list)

拷贝器的逻辑:

  • 从文件名集合中获取文件名

  • 合并出原始文件路径和拷贝到的路径

  • 根据原始文件路径打开文件模式为只读,根据拷贝到的路径新建一个文件写入

  • 拷贝的文件每次写入1024字节,当没有数据后,就结束写入并保存文件,进度条数值加1

信号与槽

def connect_init(self):        '''        信号与槽连接的函数        '''        self.root_btn.clicked.connect(lambda:self.btn_slot())        self.copy_btn.clicked.connect(lambda:self.btn_slot())        self.start_btn.clicked.connect(self.start_slot)    def start_slot(self):        '''        开始按键的槽函数        '''        self.root_btn.setEnabled(False)        self.copy_btn.setEnabled(False)        self.start_btn.setEnabled(False)        self.dir_file() # 遍历指定文件夹下的文件并添加到self.file_list集合中        self.len_file() # 获取文件夹下文件数量        self.copy_file() # 开始拷贝文件        self.log.append('拷贝成功!')        self.finish_sound.play() # 播放完成后的提示音    def btn_slot(self):        '''        上面两个按键的槽函数        '''        btn = self.sender()         if btn == self.root_btn:            directory = QFileDialog.getExistingDirectory(None,"选取文件夹","C:/")            if directory:                self.root_text.setText(directory)                self.root_path = directory                self.log.append('选择文件成功!')        elif btn == self.copy_btn:            directory = QFileDialog.getExistingDirectory(None,"选取拷贝位置","C:/")            if directory:                self.copy_text.setText(directory)                self.copy_path = directory                self.log.append('选取拷贝位置成功!')

成果展示

Python PyQt5如何实现文件拷贝器

Python PyQt5如何实现文件拷贝器

Python PyQt5如何实现文件拷贝器

关于“Python PyQt5如何实现文件拷贝器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Python PyQt5如何实现文件拷贝器

本文链接: https://www.lsjlt.com/news/305180.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python PyQt5如何实现文件拷贝器
    这篇文章将为大家详细讲解有关Python PyQt5如何实现文件拷贝器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。UI设置def ui_init(self):   ...
    99+
    2023-06-25
  • Rsync如何实现文件拷贝
    这篇文章主要为大家展示了“Rsync如何实现文件拷贝”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Rsync如何实现文件拷贝”这篇文章吧。如果需要执行自动备份操作或部署安全策略,无论是为一个单一...
    99+
    2023-06-16
  • Python PyQt5实战项目之文件拷贝器的具体实现详解
    目录简介UI设置主要逻辑信号与槽成果展示简介 写了一个简单的文件夹内容下所有文件复制到另一个文件夹内,主要逻辑代码是来自《2小时玩转python多线程编程》中的一个章节。 UI设置 ...
    99+
    2024-04-02
  • python如何拷贝文件到文件夹
    你可以使用shutil模块中的`copy`或`copy2`函数来拷贝文件到文件夹。下面是一个例子:```pythonimport s...
    99+
    2023-09-27
    python
  • java如何实现文件拷贝功能
    在Java中,可以使用FileInputStream和FileOutputStream来实现文件拷贝功能。首先,可以使用FileIn...
    99+
    2023-08-11
    java
  • python 文件夹拷贝
    记录用python 处理文件以及文件夹的拷贝。 #coding:utf-8 import os import sys import getpass import shutil # shutil.copyfile("oldfil...
    99+
    2023-01-31
    文件夹 python
  • JavaScript浅拷贝与深拷贝如何实现
    这篇文章主要介绍“JavaScript浅拷贝与深拷贝如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript浅拷贝与深拷贝如何实现”文章能帮助大家解决问题。在 JavaScript...
    99+
    2023-06-27
  • Python利用shutil实现拷贝文件功能
    目录楔子chown:更改指定路径的所有者用户(组)copy:复制文件copyfile:复制文件copymode:复制权限位copytree:递归复制整个目录树disk_usage:获...
    99+
    2024-04-02
  • Vue浅拷贝和深拷贝如何实现
    今天小编给大家分享一下Vue浅拷贝和深拷贝如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、数据类型1.1.基本数据...
    99+
    2023-07-05
  • docker如何拷贝文件到容器
    使用Docker命令可以将文件从主机拷贝到Docker容器中。下面是具体的步骤:1. 找到要拷贝的文件所在的目录。2. 运行以下命令...
    99+
    2023-10-19
    docker
  • C++中怎么实现文件拷贝
    C++中怎么实现文件拷贝,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C++文件拷贝代码示例:#include< iostream.h> &nb...
    99+
    2023-06-17
  • java如何通过字符流实现文件拷贝
    这篇文章将为大家详细讲解有关java如何通过字符流实现文件拷贝,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过字符流实现文件拷贝使用字符流只能拷贝文本文件    ...
    99+
    2023-06-17
  • 如何拷贝云服务器的文件
    要拷贝云服务器的文件,可以使用以下方法:1. 使用SCP命令:SCP(Secure Copy)是通过SSH协议进行加密的文件传输工具...
    99+
    2023-09-23
    云服务器
  • java如何通过字节流实现文件的拷贝
    小编给大家分享一下java如何通过字节流实现文件的拷贝,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!通过字节流实现文件的拷贝   p...
    99+
    2023-06-17
  • js如何实现深拷贝
    这篇文章给大家分享的是有关js如何实现深拷贝的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。深拷贝使用变量 a 拷贝对象 b,改变 a 中的值 b 中的值也会跟着改变,这叫做浅拷贝。要想让 a 独立于 b 就需要深...
    99+
    2023-06-27
  • JAVA怎么实现服务器间拷贝文件
    在Java中可以使用Socket来实现服务器之间的文件拷贝。以下是一个简单的示例代码: import java.io.*; impo...
    99+
    2024-04-09
    java 服务器
  • JavaScript如何实现深拷贝
    小编给大家分享一下JavaScript如何实现深拷贝,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!深拷贝递归的完整版本(考虑到了...
    99+
    2024-04-02
  • ssh连接linux如何拷贝文件
    在使用ssh连接到Linux服务器后,可以使用以下几种方式拷贝文件: 使用scp命令:scp命令可以通过ssh连接在本地和远程服务...
    99+
    2023-10-22
    ssh linux
  • 使用java 如何实现一个文件夹拷贝功能
    使用java 如何实现一个文件夹拷贝功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实例代码:import java.io.File;import java.io.Fil...
    99+
    2023-05-31
    java 文件夹拷贝 ava
  • hadoop跨集群文件拷贝怎么实现
    Hadoop跨集群文件拷贝可以通过多种方式实现,以下是一些常见的方法: 使用distcp工具:distcp是Hadoop自带的一...
    99+
    2024-04-09
    hadoop
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作