马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import os
dict1 = {}
line = 0
position = 0
list1 = []
def search_file(keyword, confirm):
if confirm == 'YES':
for each in os.listdir(os.curdir):
line = 0 #初始化行数,列表,位置
list1.clear()
position = 0
if os.path.isdir(each): #递归判断是否是目录,并返回上一级目录
search_file(keyword,confirm)
os.chdir(os.pardir)
f = open(os.getcwd()+os.sep+each) #打开文件,判断keyword是否存在文档中
i f os.path.splitext(each)[1] == '.txt' and keyword in f.read():
print('在文件【%s】中找到关键字【%s】'%(each,keyword))
for each_line in f: #逐行判断在哪,并存储位置
line += 1
if keyword in each_line:
while keyword in each_line[position:]: #多个关键词要用到列表
position += each_line[position:].index(keyword)
list1.append(position)
dict1.setdefault(line,list1) #存到字典中
print('关键字出现在第%s行,第%s个位置'%(dict1.keys(),dict1.values()))
f.close()
keyword = input('请将该脚本放于待查找的文件夹内,输入关键字:')
confirm = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' %(keyword))
list1=search_file(keyword, confirm)
题目大意:找到在py文件所在目录下(遍历所有目录)的所有txt文件里的输入的关键词并返回行数和位置
卡在了递归那行,无限重复同样的两个print , |