c++查询当前文件夹下文件数目_python3自动化小工具--删除某个文件夹xx后缀文件...

源码 DelSomeFile.py

"""
此代码用于删除文件夹下面以txt结尾的文件
(同理将.txt-->.py可以删除py文件)
借用pyqt5调用文件选择对话框看起来比较人性化点
本来是用win32ui的,但是win32ui不太人性化,不能选择文件夹,
需要经过一点处理,虽也能实现,但是比较麻烦,而tk我也不熟悉
一下子去用也崩溃了,后来想起我玩过qt,索性就试试dlg = win32ui.CreateFileDialog(1) #打开文件对话框dlg.SetOFNInitialDir("E:") #初始dlg.DoModal()filename = dlg.GetPathName()print(os.path.dirname(filename),os.path.basename(filename))try:print(os.path.dirname(filename),"文件夹大小为:" ,scanFolder(os.path.dirname(filename)),"字节")except Exception as e:print("未选择路径")
"""from  __future__ import print_function
import ctypes
import os,sys
from PyQt5.QtWidgets import QApplication,QFileDialogdef is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return Falsedef scanFile(path):print(path,'文件夹:n')for filename in os.listdir(path):# print(os.access(filename, os.X_OK))if filename.endswith('.txt'):print('找到txt文件',filename,'是否删除?(Y or N)')active = input()if active.lower() == 'y':print(active.lower(),active)os.unlink(os.path.join(path,filename))print(filename,"已删除")else:print("未删除")#判断当前目录的子文件是否是目录,如果是,利用递归,到这个文件下if os.path.isdir(os.path.join(path,filename)):scanFile(os.path.join(path,filename))if __name__ == "__main__":if is_admin():# 调用qt5的文件夹窗口app = QApplication(sys.argv)filewindow = QFileDialog()filename = filewindow.getExistingDirectory()path = filenametry:scanFile(path)print('选择文件夹查询结束!!')input("按下任意键结束程序!!!")except Exception as e:print(e, "未选择路径")else:if sys.version_info[0] == 3:ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, __file__, None, 1)# else:#else是在python2.x中使用的# ctypes.windll.shell32.ShellExectueW(None,u'runas',unicode(sys.executable,unicode(__file__),None,1))

1.1 运行后弹出文件管理对话框,人性化选择文件夹路径,(可以用qt、tk)

import os,sys
from PyQt5.QtWidgets import QApplication,QFileDialog
# 调用qt5的文件夹窗口
app = QApplication(sys.argv)
filewindow = QFileDialog()
filename = filewindow.getExistingDirectory()
path = filename #此处得到你选择的文件夹路径
#print(path)

1.2 本来是用win32ui的,但是win32ui似乎不支持选择文件夹,只是支持选择文件,得到文件路径,但是通过文件路径处理也能得到文件夹路径,即使能得到文件夹路径,感觉也比较没意思

import win32ui,os
dlg = win32ui.CreateFileDialog(1) #打开文件对话框dlg.SetOFNInitialDir("E:") #初始dlg.DoModal()filename = dlg.GetPathName()#此处得到文件路径print(os.path.dirname(filename),os.path.basename(filename))#通过os对文件路径进行处理前面得到文件夹路径--dirname#后面获得文件名称--basename

2.对文件夹进行递归处理,即判断此文件夹下是否还存在文件夹,反复递归,最终遍历整个文件夹

import os,sys
def scanFile(path):print(path,'文件夹:n')#打印当前处于哪个文件夹下面--绝对路径for filename in os.listdir(path):if filename.endswith('.txt'):#判断文件名后缀是否为txt,同理可以判断后缀是否是pyprint('找到txt文件',filename,'是否删除?(Y or N)')#交互选择--如果想全部删除,可以不要交互active = input()if active.lower() == 'y':print(active.lower(),active)os.unlink(os.path.join(path,filename))#将文件名加上路径,然后删除,如果只是想打印不删除,将这句话删掉就可以print(filename,"已删除")else:print("未删除")#如果没有输入Y就不会删除文件#判断当前目录的子文件是否是目录,如果是,利用递归,到这个文件下if os.path.isdir(os.path.join(path,filename)):scanFile(os.path.join(path,filename))#自己调用自己

3 由于部分文件夹或者说路径需要权限,于是加入调用权限功能---参考别人的代码,不能在ide中运行,要在cmd中:python DelSomeFile.py这样运行整个py文件

from  __future__ import print_function
import ctypes
import os,sys
from PyQt5.QtWidgets import QApplication,QFileDialog
#我的逻辑还是弄不太清楚,此代码如果在ide中运行,则会直接结束,不能处理
def is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return False
if is_admin():# 调用qt5的文件夹窗口app = QApplication(sys.argv)filewindow = QFileDialog()filename = filewindow.getExistingDirectory()path = filenametry:scanFile(path)print('选择文件夹查询结束!!')input("按下任意键结束程序!!!")except Exception as e:print(e, "未选择路径")
else:if sys.version_info[0] == 3:ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, __file__, None, 1)# else:# ctypes.windll.shell32.ShellExectueW(None,u'runas',unicode(sys.executable,unicode(__file__),None,1))

4 到这里了,整个小工具,以我的理解能力介绍完了,我是觉得自己写这个还行,整个工具还是有点粗糙,但是应该有用,即使没有实际作用,也算是增强自己对代码的熟练把

5 最后可以通过:pyinstaller -F DelSomeFile.py 将脚本打包成一个真正的exe小工具了 ,如果喜欢可以像我一样给它加个图标(那就这样pyinstaller -i "xx.ico"-F DelSomeFile.py,这个是用相对路径,相对路径成功使用是建立在xx.ico和DelSomeFile在同一个文件夹下,如果不在就用绝对路径)

02c0ae4355fd5a1ff6d31bc24436d759.png

6 运行截图:

5d350087254ddefd3b35f5be32b07e43.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

creo组装后怎样移动元件_BGA元件SMT装配工艺要点简介

当SMT(表面贴装技术)/SMD(表面贴装器件)从业者发现间距为0.3mm的QFP(四方扁平封装)无法实现时,BGA(球栅阵列)的出现肯定会减少装配缺陷确保SMT质量成就。从系统理论的角度…

burpsuite csrf攻击_WEB安全之CSRF

大家好,我是阿里斯,一名IT行业小白。今天分享的内容是CSRF相关知识,不求表哥们打赏,只求点点在看,点点转发。CSRF漏洞概述CSRF(Cross-Site Request Forgery),中文名为跨站请求伪造,是一种Web攻击方式。该漏…

财物机器人英文ppt演讲课件_“如何恰当使用课件动画”

每晚21:30分享教师干货记得当大姜老师还是一名稚嫩的大一新生时,由于小时候家里管的比较严,几乎没什么碰电脑的机会。即便有了难得的机会,也都用来打游戏了......直到上了大学,需要做各种的汇报PPT、课件PPT、演讲PPT&…

机器人总动员最后的bgm_引导你欣赏《机器人瓦力》的电影配乐

音乐为配合影片中出现的画面, 营造出一种特定的氛围基调。视觉上的效果带给我们的是一种直观的感受, 而伴随音乐细致入微的描写, 才能让画面更加的生动, 形象更深入人心。在动画片中, 最先出现的Put On Your SundayClothes这段音乐是1963年的音乐剧《你好, 多利》中的选段, 轻快…

curl 请求日志_kong api网关日志 将请求和响应数据附加到磁盘上的日志文件中

术语plugin:在请求被代理到上游API之前或之后,在Kong内部执行操作的插件。Service:表示外部上游 API或微服务的Kong实体。Route:Kong实体,表示将下游请求映射到上游服务的方法。Consumer:表示使用API​​的…

MySQL 的分页查询 SQL 语句

MySQL一般使用 LIMIT 实现分页。基本语句为: SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。 举例来说,如果实际SQL类似下面语句&#…

怎么主动发起话题_为什么男生不愿意主动追求女生了?这或许是最终的核心原因...

作为一个在情感领域和心理学领域深耕了许久的半吊子研究人员,对于情感话题一向都比较感兴趣。为什么男生不愿意主动追求女生了?这大概是近两年两性恋爱关系中最热门的话题了,每次都想在问答中回复,都没有想到一个完整的答案&#…

关闭 Pycharm 更新提示

File > settings > Appearance & Behavior > System Settings > Upadates 取消勾选 Automatically check updates for ……

golang errors 取 错误 信息_Golang 单元测试:有哪些误区和实践?

背景测试是保证代码质量的有效手段,而单元测试是程序模块儿的最小化验证。单元测试的重要性是不言而喻的。相对手工测试,单元测试具有自动化执行、可自动回归,效率较高的特点。对于问题的发现效率,单测的也相对较高。在开发阶段编…

节能prru进入深度休眠节能_2021-2024年中国工业节能行业深度调研及投资前景预测报告...

近年来,随着供给侧结构性改革不断深化,工业经济发展势头良好,转型升级步伐进一步加快,生产稳定增长、结构持续优化、效益明显提高、新动能加速成长。随着中国工业节能的政策推力逐渐加大,工业节能市场迅速发展&#xf…

多布局怎么搭建_关键词SEO优化怎么做?具体包括哪些方面?

在互联网的活动中,网站优化是企业们提升网站排名的常用方法之一,这也是进行线上获客的重要手段,超过75%的中小企业都非常认可这种营销方式。但是,想要做好关键词的优化,网站关键词定位、关键词布局、关键词密度等等都是…

使用特征_R语言-使用caret包实现特征选择:递归特征消除(RFE)算法

在caret(short for classification and regression training)包中有多个函数可以实现特征选择,总的分为封装法和过滤法。封装法,将特征选择过程与训练过程融合在一起,以模型的预测能力作为特征选择的衡量标准。封装法可…

7 centos 查看程序文件数量_「动手打造家庭媒体网络平台」安装篇-centos搭建DLNA媒体服务...

大家好,我是路程lucky,热爱开发、设计、学习、生活、爱捣鼓的web前后端工程师~本文的重点是在之前文章提到创建的centos基础上继续搭建DLNA媒体服务。由于centos的系统是从零开始初步安装完成,我们在安装媒体服务时,不可避免出现各…

python 逻辑回归准确率是1_python数据分析(三)——逻辑回归之学生成绩预测

Python数据分析项目——学生成绩预测一.数据源阿里云天池公开数据集:学生成绩预测数据集https://tianchi.aliyun.com/dataset/dataDetail?dataId6785特征(Features)介绍:Gender: 性别Nationality: 国籍PlaceofBirth:出生地StageI…

向量数量积公式_多法 | 向量数量积相关最值问题的常见处理方法

近日QQ群更新的部分内容如下高中11大类86个易错点全梳理(185页Word)恒成立涉及10大类40小类题型梳理(100页Word)高中数学10大专题100个考点配例题全梳理2020高考真题分类汇编理科(14讲Word)2019年江苏高考数学题根系列(50份Word)2020届江苏高三上期中期末分类汇编(12讲Word)202…

kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现。本文章记录了数据导入从 0 到 1 的过程,最终实现了每秒钟快速导入约 …

coreldraw错误代码14001_CorelDRAW文件损坏的几种解决方法

以前做好的CorelDRAW文件突然打不开了,或者是死机、非法操作等原因造成CorelDRAW文件损坏,有时打开源文件发现一片空白,源文件保存损坏无法打开怎么办?此时不要着急,你可以试试以下几种办法帮你解决问题!解决方法一、…

垂直梯形校正画质损失多少_投影小常识 梯形矫正竟会影响清晰度

我们在日常使用投影机时,经常会用到梯形矫正这个功能,梯形矫正确实在我们的日常使用中可以起到很好的效果,当环境因素不允许我们去将投影机本身摆正的时候,梯形矫正往往可让我们得到方正的画面,但是梯形矫正也是存在一…

增量同步_使用Kettle工具进行增量数据同步

增量同步的方式有很多种,我使用的是: 快照表 触发器需求:当主库库表发生增删改时,从库库表与主库库表数据保持一致。环境:1、Mysql2、kettle 7.1思路:1、在主库中,将需要同步的库表新建快照表,…

python架构图教程_Python 五分钟绘制漂亮的系统架构图

Diagrams 是一个基于Python绘制云系统架构的模块,它能够通过非常简单的描述就能可视化架构,并支持以下6个云产品的图标:AWS、Azure、GCP、K8s、阿里云 和 Oracle 云基于Diagrams提供的节点,你只需要指定一个云产品(实际上选哪个都…