|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如下,这段代码是我自己写的,和小甲鱼的不一样。问题在于:
当我把最后print程序放到函数内的时候,会打印如第一张图片,重复好几遍……但是装载数据的字典信息是正确的- import os
- import os.path
- import re
- key_word = input('请将该脚本放于待查找的文件夹内并输入关键字:')
- location = input('请问是否需要打印关键字【'+key_word+'】在文件中的具体位置(yes/no):')
- key_dict = {}
- def find_file(word):
- for each in os.listdir(os.curdir):
- if os.path.isdir(each):
- os.chdir(os.curdir + os.sep + each)
- find_file(word)
- os.chdir(os.pardir)
- else:
- if os.path.splitext(each)[-1] == '.txt':
- with open(os.getcwd() + os.sep + each) as f:
- count = 1
- for line in f:
- iter_line = list(re.finditer(word,line))
- if iter_line:
- key_dict.setdefault((os.getcwd() + os.sep + each), {})
- key_dict[os.getcwd() + os.sep + each].setdefault(count, [])
- for each_1 in range(len(iter_line)):
- key_dict[os.getcwd() + os.sep + each][count].append(iter_line[each_1].span()[0])
- count += 1
- else:
- #f.readline()
- count += 1
- count = 0
- '''
- if key_dict:
- for i in key_dict.keys():
- print('在文件【%s】中找到关键字【%s】' %(i,key_word))
- if location == 'yes':
- for j, k in key_dict[i].items():
- print('关键字出现在第{0}行,第'.format(j)+str(k)+'个位置')
- '''
-
- find_file(key_word)
- if key_dict:
- for i in key_dict.keys():
- print('在文件【%s】中找到关键字【%s】' %(i,key_word))
- if location == 'yes':
- for j, k in key_dict[i].items():
- print('关键字出现在第{0}行,第'.format(j)+str(k)+'个位置')
-
-
-
复制代码 ;
但我把该段程序放到函数外面的最后,就正常打印了。
求教有大神有空的麻烦解答一下,感激不尽!!!!
能直接指出你要问的是哪条语句嘛,你这代码实在看的眼花。
|
-
|