linux下搜索文件的python方法,linuxpython,linux下如何用pyt
linux下搜索文件的python方法,linuxpython,linux下如何用pyt
linux下如何用python方法来搜索文件,看看我写的方法是否可行。新手练习,多多指教!
python fsearch.py <file_pattern> [-p] 'path1 path2 path3'
os、sys、glob、re是代码中需要用到的几个方法
如果加-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' !" % patternsys.exit(1) else: matches = list(search_all_files(pattern, os.environ['PATH']))if matches: for match in matches:print matchelse: print "Not find like '%s' !" % pattern sys.exit(1)def deep_search(fpattern, path):pathlist = path.split(' ')finded = Falsefor 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 fullpathfinded = Trueelse:continueelse:print "[*]Path %s don't exit !" % psys.exit(1)if not finded:print "Don't find like %s !" % fpatternif __name__ == '__main__': if '-p' in sys.argv:PPATH = Trueif '-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])
Python文件操作相关文章推荐:
1、Python遍历文件夹目录与文件操作
2、Python 文件对象常用内建方法
编橙之家文章,
相关内容
- Python用户推荐系统曼哈顿算法实现,python曼哈顿,Pytho
- Python用户推荐系统minkowski算法的实现,pythonminkowski,Py
- python获取网页时的解码问题解决,python获取网页解码
- 利用python将域名转换成IP 再扫描端口,pythonip,利用pyt
- 教你用Python编写一个拼写检查器,python编写拼写检查
- 用python来抓取知乎日报,python抓取知日报,今天来和大家
- 查看python源代码所依赖的模块,python源代码模块,查看
- python3 bs4 抓取豆瓣MM图片,,python3 bs4
- python编写 ElasticSearch 数据导入导出功能,,python编写
- python来查看Linux系统内存使用情况,pythonlinux,经常系统
评论关闭