|
10鱼币
- import os
- def print_answer(dict_key):
- '''打印查找结果'''
- keys = dict_key.keys()
- keys = sorted(keys)
- for each in keys:
- print('关键字出现在第%s行,第%s个位置'%(each,dict_key[each]))
- def find_each_line_key(each_line,dict_key,line):
- '''查找段落中的key'''
- line_key = each_line.find(key)
- position = []
- while line_key != -1:
- position.append(line_key+1)
- line_key = each_line.find(key,line_key)
- return position
- def find_key(files):
- '''打开文件并查找'''
- txt = open(files)
- line = 0
- dict_key = dict()
- for each_line in txt:
- line+=1
- position = find_each_line_key(each_line,dict_key,line)
- dict_key[line] = position
- txt.close()
- return dict_key
- def open_file(list_txt,a,name,i):
- '''打开文件'''
- for files in list_txt:
- dict_key = find_key(files)
- #查找步骤
- #打印结果
- print('在文件【%s】中找到关键字【%s】'%(i[0],name))
- print_answer(dict_key)
- print('===============================================================')
-
-
- def find_file(key):
- '''查找txt文件'''
- list_txt = []
-
- a = os.walk(os.getcwd())
- for i in a:
- for name in i[2]:
- more = os.path.splitext(name)[1]
- if more == '.txt':
- list_txt.append((i[0]+'\\'+name))
- open_file(list_txt,a,name,i)
- key = input('请将该脚本放于待查找的文件夹内,请输入关键字:')
- check = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' % key)
- check.lower()
- if check == 'yes':
- find_file(key)
复制代码
这是题目原文:
我的代码执行后提示错误显示内存溢出
但是实在不会怎么解决。。。困扰了我整整一天,跪求大佬解答
你这个程序还有个问题。
问题:
for each_line in txt:
line+=1
position = find_each_line_key(each_line,dict_key,line) #并没有判断 key 是否在 each_line 中
dict_key[line] = position
修改:for each_line in txt:
line+=1
if key in each_line: # 增加一个判断语句,判断 key 是否在 each_line 中
position = find_each_line_key(each_line,dict_key,line)
dict_key[line] = position
|
最佳答案
查看完整内容
你这个程序还有个问题。
问题:
for each_line in txt:
line+=1
position = find_each_line_key(each_line,dict_key,line) #并没有判断 key 是否在 each_line 中
dict_key[line] = position
修改:for each_line in txt:
line+=1
if key in each_line: # 增加一个判断语句,判断 key 是否在 each_line 中
position = find_each_line_key(each_line,dict ...
|