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