在linux上搜索文件,linux搜索文件,使用方法:python
在linux上搜索文件,linux搜索文件,使用方法:python
使用方法:
python fsearch.py <file_pattern> [-p] 'path1 path2 path3' [-d]
如果加-p选项则为指定目录查找
如果在-p选项添加完后跟一个-d选项则为深度查找
#!/usr/bin/env pythonimport os, sys, glob, reif sys.hexversion < 0x02040000: print >> sys.stderr, 'Your python version is too old (%s)' % \\ (sys.version.split()[0]) print >> sys.stderr, 'You need at least Python 2.4' sys.exit(1)PPATH = Falsedef search_all_files(pattern, search_path, pathsep=os.pathsep): for path in search_path.split(pathsep): ''' candidate = os.path.join(path, filename) if os.path.isfile(candidate): return os.path.abspath(candidate) ''' for match in glob.glob(os.path.join(path, pattern)): yield matchdef print_file(pattern, path=None): if PPATH: p = path.split(' ') path = lambda p : os.pathsep.join(p) matches = list(search_all_files(pattern, path(p))) if matches: for match in matches: print match else: print "Not find like '%s' !" % pattern sys.exit(1) else: matches = list(search_all_files(pattern, os.environ['PATH'])) if matches: for match in matches: print match else: print "Not find like '%s' !" % pattern sys.exit(1)def deep_search(fpattern, path): pathlist = path.split(' ') finded = False for p in pathlist: if os.path.exists(p): for dirpath, dirnames, filenames in os.walk(p): for file in filenames: fullpath = os.path.join(dirpath, file) if re.search(fpattern, fullpath): print fullpath finded = True else: continue else: print "[*]Path %s don't exit !" % p sys.exit(1) if not finded: print "Don't find like %s !" % fpatternif __name__ == '__main__': if '-p' in sys.argv: PPATH = True if '-d' not in sys.argv: if len(sys.argv) != 4 or sys.argv[1].startswith('-'): print "Usage %s <pattern> -p 'path1 path2 path3....' use escape to split pathname" % sys.argv[0] else: print_file(sys.argv[1], sys.argv[3]) elif sys.argv[4] == '-d': deep_search(sys.argv[1], sys.argv[3]) else: if len(sys.argv) != 2 or sys.argv[1].startswith('-'): print "Usage %s <pattern> " % sys.argv[0] sys.exit(1) else: print_file(sys.argv[1])#该片段来自于http://byrx.net
相关内容
- 将 Byte Array 保存到文件,bytearray,import chilk
- Python 删除目录下文件,python目录,import osimp
- Python3写的ICMP扫描探测网络,速度非常快哦!,python3
- python判断对象是否是字符串类型,python字符串,print is
- 生成任意位数的纯数字字典,生成位数字典,import sysd
- 使用python将bing每日壁纸设置为win7桌面壁纸,pythonwin7
- 一行代码写一个计算器,一行代码写计算器,动态语言通
- 双倍超立方数,双倍,双倍超立方数 是指一个正
- Python 统计日志中每个IP出现的次数,python日志,这脚本可
- python MySQLdb 参数化查询,pythonmysqldb,Python MySQL
评论关闭