递归查找某个目录下是否存在NOTICE文件
从Catalogs.txt文件中,读取待检查的目录列表。检查这些目录中,是否存在NOTICE文件,如果没有则检查它的父目录,直到cd ..到Repository目录。
如果cd ..到Repository目录后,仍没有找到NOTICE文件,则说明这个目录中缺失了NOTICE文件,将这个目录打印出来,并存到result.txt文件中。
# -*- coding: utf-8 -*-
import os
#从NOTICE获取待检查的目录列表
def getCatalogs(file):
files = open(file,'r')
lines = files.readlines()
return lines #检查单个目录及其父目录是否存在NOTICE文件
def scandir(initdir, checkName,stopName ):
dir = initdir + '/' + checkName
flag = os.path.exists(dir)
finalFlag = False
if flag :
return True
dir = os.path.dirname(initdir)
if stopName in str(dir):
finalFlag = scandir(dir, checkName,stopName )
return finalFlag def isExist(file, checkName, stopName):
catalogs = getCatalogs(file)
notContainCheckName= []
for line in catalogs:
line = line.strip()
line = line.strip('\n')
flag = scandir(line, checkName, stopName )
if(not flag):
notContainCheckName.append(line)
# 打印缺少NOTICE文件的目录
for line in notContainCheckName:
file = open('result.txt','a+')
file.write(line + '\n')
print(line) if __name__ == '__main__':
#Catalogs.txt:目录列表 NOTICE:待检查的文件 Repository:终止目录
isExist('Catalogs.txt', 'NOTICE', 'Repository')
递归查找某个目录下是否存在NOTICE文件的更多相关文章
- php递归查找指定目录下及子文件名称是否包含中文空格及括号
//php递归查找该目录下及子文件名称是否包含中文空格括号 function searchDir($path,&$data){ if(is_dir($path)){ $dp=dir($path ...
- C++查找指定目录下所以指定类型的文件
/*************************************************************** 函数名称:FindFile 查找指定目录下指定文件 输入:fileNa ...
- 运维笔记--Linux查找指定目录下某段时间的文件
查找指定目录下,60天之前的文件:find /mnt/xml_data -mtime +60 -name "*.xml" 找到并统计数量:find /mnt/xml_data -m ...
- [bash]查找指定目录下符合格式的txt文件
需求: 查找指定目录下符合yyyy-MM-dd(-b)NNN.txt格式的文件,如“2020-03-22-b888.txt” 目标目录内容: [root@localhost bashs]# ll /r ...
- python_自动查找指定目录下的文件或目录的方法
代码如下 import os def find_file(search_path, file_type="file", filename=None, file_startswith ...
- linux 批量替换文件内容及查找某目录下所有包含某字符串的文件
转载请注明来源:https://www.cnblogs.com/hookjc/ 1. sed C代码 grep -rl matchstring somedir/ | xargs sed -i 's ...
- php源码之遍历目录下的所有的文件
<?php //遍历目录下的所有的文件 -- 递归调用 // http://www.manongjc.com/article/1495.html function get_all_file1($ ...
- 我的Android进阶之旅------>Android使用正则表达式匹配扫描指定目录下的所有媒体文件(音乐、图像、视频文件)
今天使用正则表达式匹配指定目录下的所有媒体文件,下面将这份代码简化了,可以收藏下来,当作工具类. package match; import java.io.File; import java.uti ...
- C#查找指定路径下的所有指定文件,并读取
string path="指定路径"; string filename =“需要查找的文件名.csv"; List<string> lineStringLis ...
随机推荐
- HTTP 缓存控制总结
引言 通过网络获取内容既缓慢,成本又高:大的响应需要在客户端和服务器之间进行多次往返通信,这拖延了浏览器可以使用和处理内容的时间,同时也增加了访问者的数据成本.因此,缓存和重用以前获取的资源的能力成为 ...
- PHP函数积累总结(Math函数、字符串函数、数组函数)
Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...
- rcp(插件开发)The type XXX cannot be resolved. It is indirectly referenced from required .class files解决办法
如果你在使用插件开发时遇到这个问题: The type org.eclipse.core.resources.IFile cannot be resolved. It is indirectly re ...
- Windows7 64位机上Emgu CV2.4.2安装与配置
Windows7 64位机上Emgu CV2.4.2安装与配置 分类: Emgu CV 2012-11-28 17:22 92 ...
- javaSE-基础部分整理
JavaSE基础部分整理 1.java介绍 1.Java分为三个部分: javaSE,javaEE,javaME; java重要性之一:跨平台(操作系统). 跨平台:一次编译,到处运行. Java虚拟 ...
- Install Package and Software
svn http://tortoisesvn.sourceforge.net/ git https://download.tortoisegit.org/ http://git-for-windows ...
- 在Spring中使用JDK定时器实现调度任务
在Spring中使用JDK定时器实现调度任务 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 本文探讨Spring如何集成JDK的Timer定时器,实现 ...
- TCP并发server,每个客户一个子进程
今天笔者带来的是server型号第一,这是最经常使用的模型的最基本的一个–TCP并发server,每个客户一个子进程. 首先简单介绍:TCP并发server,每个客户一个子进程,并发server调用f ...
- 常用linux命令和配置
find只查看文件和只查看目录 find -type f -name clexec find -type d -name clexec 解压rpm [root@sj_x861 2]# ls e ...
- WPF制作QQ列表(仿qq列表特效)
先看效果图:这个是折叠特效. 代码结构: model是我们的数据模型,定义了在列表显示的人物名称 图片 简介 . Resource是我们的图片资源 和 存储图片资源路径.名称 ...