题目:编写一个程序,用户输入关键字,查找当前文件夹内(如果当前文件夹内包含文件夹,则进入文件夹继续搜索)所有含有该关键字的文本文件(.txt后缀),要求显示该文件所在的位置以及关键字在文件中的具体位置(第几行第几个字符)
代码:
import os
def pos_print(cnt, result, file):
file_path = os.getcwd() + os.sep + file
print("{}当前文件下含有{}有:".format(file_path, keywords))
print("第%d行" % cnt)
for each in result:
print("第%d个字符后有%s" %(each, keywords), sep=' ')
print('\n')
def Find(line):
begin = line.find(keywords, 0)
pos = []
while begin != -1:
print(begin)
pos.append(begin + 1)
begin = line.find(keywords, begin + 1)
return pos
def search_in_file(file):
with open(file) as f:
cnt = 0
for each_line in f:
cnt += 1
result = Find(each_line)
if len(result) != 0:
pos_print(cnt, result, file)
def search(current_dir):
os.chdir(current_dir)
for each_file in os.listdir(os.curdir):
if os.path.splitext(each_file)[1] == '.txt':
print(os.getcwd() + os.sep + each_file)
search_in_file(each_file)
if os.path.isdir(each_file):
search(each_file)
os.chdir(os.pardir)
keywords = input("请输入关键字:")
os.chdir("python练习")
search(os.curdir)