python 文本文件中查找指定的字符串

Python041

python 文本文件中查找指定的字符串,第1张

编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。

import os

class SearchFile(object):

def __init__(self,path='.'):

self._path=path

self.abspath=os.path.abspath(self._path) # 默认当前目录

def findfile(self,keyword,root):

filelist=[]

for root,dirs,files in os.walk(root):

for name in files:

fitfile=filelist.append(os.path.join(root, name))

#print(fitfile)

print(os.path.join(root, name))

#print(filelist)

print('...........................................')

for i in filelist:

if os.path.isfile(i):

#print(i)

if keyword in os.path.split(i)[1]:

print('yes!',i)# 绝对路径

#else:

#print('......no keyword!')

def __call__(self):

while True:

workpath=input('Do you want to work under the current folder? Y/N:')

if(workpath == ''):

break

if workpath=='y' or workpath=='Y':

root=self.abspath # 把当前工作目录作为工作目录

print('当前工作目录:',root)

dirlist=os.listdir() # 列出工作目录下的文件和目录

print(dirlist)

else:

root=input('please enter the working directory:')

print('当前工作目录:',root)

keyword=input('the keyword you want to find:')

if(keyword==''):

break

self.findfile(keyword,root) # 查找带指定字符的文件

if __name__ == '__main__':

search = SearchFile()

search()

这个很简单哈,我用java写过类似的,python下没写过,但思路都是一样的,我说一下思路,供你参考一下:

【笨方法】”字符串截取“

基本字符串1=”abc123“

基本字符串2=”345aaa“

例如:目标字符串为:Today

is

a

good

day

aaa123目标字符串345aaa

那么:

获得基本字符串1的长度:len1=len(基本字符串1)

获得基本字符串2的长度:len2=len(基本字符串2)

---------------------------------------------------------------------

以len1长度开始截取目标字符串,以上面的例子为例,截取出来的应该为:

Today_

oday_i

day_is

ay_is_

y_is_a

等...........................

..............

当然这些都是一个循环就可以搞定,然后在这个循环里,对每次接触的字符串进行比对,如果找到与目标字符串形同的,则记下”索引“

开始进行下一步处理:截取本句剩下的部分,找到”基本字符串2“,然后记下其开始”索引“,那么两个”索引“之间的东东就是你想要的那个”目标字符串“,之后你想用它干什么都行...........

【超简单的方法】

会”正则表达式“吗?会的话,直接用正则吧,几句就出来了..........