Search and statistics

Task:Find out the files containing the specified word in all the texts in the directory, and list the contents of the row and row number.


1 import glob
2 list1=[]
3 for filename in glob.glob('D:/*.txt'):
4     file = open(filename,'r')
5     for num,value in enumerate(file):
6         if value.find('XXX')>=0:
7             list1.append(filename+' '+num+' '+value)
8     file.close()

It seems that it can also be done in the form of apply (lambda:), but it is not as clear and understandable as for loop.


1 =directory@p("*.txt")  
2 =A1.conj(file(~).read@n().(if(pos(~,"xxx"),[A1.~,#,~].string())).select(~))  

esProc provides the traversal function of the file system. Combined with the text computing ability, it can be done in two lines of code.