python输出文件路径并保存_python3编写深度遍历磁盘路径并将文件路径输出txt保存,带注释...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

import os

dir_list=[]#需要遍历的磁盘或目录

kickout_dir=['System Volume Information','$RECYCLE.BIN']#排除系统拒绝访问的目录名称

filepath=r'D:\1.txt'#用于保存遍历出的文件的路径

geshi_list=[]#筛选文件格式

size=0

def get_dir(dirs):

with open(filepath,'a') as file:

for dir in dirs:

dirlist=os.listdir(dir)

for kick_dir in kickout_dir:

if kick_dir in dirlist:#如果存在系统拒绝访问的目录,就从列表里删除

dirlist.remove(kick_dir)

try:

for temp in dirlist:

tempdir=os.path.join(dir,temp)

if os.path.isdir(tempdir):#如果是目录就加到dir_list

dir_list.append(tempdir)

else:#如果是文件

#file_list.append('%s\n'%tempdir)

if len(geshi_list)!=0:

#判断格式列表是否为空,也就是是否需要筛选格式

for geshi in geshi_list:

if tempdir[-len(geshi):].upper()==geshi.upper():

if os.path.getsize(tempdir)/(1024*1024)>=size:

try:

file.write('%s\n'%tempdir)

print(tempdir)

except:

pass

else:#如果不筛选格式,就直接记录文件路径

try:

file.write('%s\n'%tempdir)

print(tempdir)

except:

pass

finally:

dir_list.remove(dir)#把已遍历过的目录路径从dir_list里删除

#======================================================================

dir_input=input('请输入需要遍历的磁盘,多个磁盘以空格隔开如:C D E\n')

temp=dir_input.split()

for temp1 in temp:

dir_list.append('%s:\\'%temp1.upper())

#======================================================================

geshi_input=input('请输入需要筛选的格式,多个格式以空格隔开如:jpg bmp gif;如果不需要筛选格式请输入N\n')

if geshi_input.upper()=='N':

geshi_list=[]

else:

temp=geshi_input.split()

for temp1 in temp:

geshi_list.append(temp1)

#=======================================================================

size=float(input('请输入最低文件大小,单位为M\n'))

while len(dir_list)!=0:

get_dir(dir_list)

input('已经将文件路径记录在D盘1.txt里按回车键退出')

#print(round(os.path.getsize(r'E:\1.txt')/(1024*1024),2))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值