解决向os.path.exists()中无法传递通配符判断子目录下该文件是否存在并删除该文件

Python在调用os模块时我们经常使用os.path.exists(‘filename’)判断当前目录下是否存在该文件,如:

1.问题描述

#导入相关函数库
import os
#判断当前目录下是否存在prem.txt文件
reslut = os.path.exists('prem.txt')
print(reslut)

运行结果返回True或False,但是我们无法向os.path.exists("")中传递通配符匹配下一级子目录,如(我将prem.txt文件移动到下一级文件中返回结果仍为False):

#导入相关函数库
import os
#判断当前目录下是否存在prem.txt文件
reslut = os.path.exists('./*/prem.txt')
print(reslut)

2.解决方案

实例:我将prem.txt文件移动到刚创建的两个子目录文件中(data1和data2文件夹下都存在prem.txt文件),如图所示:
在这里插入图片描述
引入glob模块,并利用glob.glob()获取子目录下文件路径信息,判断子文件是否存在,代码中的path_elli是通过glob.glob()获取prem.txt的路径信息(包含两个路径[’./data1/prem.txt’, ‘./data2/prem.txt’]),代码中的pathfile是获取到的"data1"和"data2"文件夹名并保存在一个数组中,通过循环即可判断子目录下是否存在该文件。
具体代码及运行结果:

#导入相关函数库
import os
import glob

#判断当前目录下是否存在prem.txt文件
reslut = os.path.exists('./*/prem.txt')

#读取子目录文件路径信息
path_elli = sorted(glob.glob('./*/*prem.txt'))
#循环读取不同地震目录下的数据
for path in path_elli:
	pathfile = path.split('/')[1]
	#yk_list相当于通配符的作用
	yk_list = glob.glob('./'+pathfile+'/prem.txt') 
	for yk in yk_list:
		#判断是否存在该文件,如果存在,则删除
		print(os.path.exists(yk))

在这里插入图片描述
添加os.system('rm '+yk)后即可删除子文件夹下的prem.txt文件。
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值