windows环境下python2.7
脚本指定一个参数作为要检索的字符串
例如: >find.py ./ hello
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# coding=utf-8 import os import sys def findFile(path): f = [] d = [] l = os.listdir(path) for x in l: if os.path.isfile(os.path.join(os.getcwd() + "\\" , x)): f.append(x) else : d.append(x) return f, d # 返回文件和目录的列表 # print x, "\n", y # 统计一个文本内字符串的个数 def findstrCount( file , strToFind): count = 0 thefile = open ( file , 'rb' ) while True : buffer = thefile.read() if not buffer : break count + = buffer .count(strToFind) thefile.close() return count # 遍历文件列表中,包含特定字符串的文件 def findstr( file , str ): # f = open(file, "r+") # if f.read().find(str) != -1: # s = os.getcwd() + "\\" + file # else: # s = "None" # f.close() i = 1 global s for line in open ( file ): # return is index of the str start position. if line.find( str ) ! = - 1 : s = os.getcwd() + "\\" + file + " - - - - - - >line: % d" % (i) print s i = i + 1 return s L = [] # 全局变量,存放找到的目标文件 def find(p, str ): try : f, d = findFile(p) for x in f: Ret = findstr(x, str ) if Ret: L.append(Ret) if d: for x in d: os.chdir(x) find( "./" , str ) os.chdir( '../' ) except Exception, e: print e finally : pass if __name__ = = '__main__' : s = 0 find(sys.argv[ 1 ], sys.argv[ 2 ]) |
以上这篇python检索特定内容的文本文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/l_vim11/article/details/53928112