|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 shizhou 于 2017-11-14 08:14 编辑
看了小甲鱼老师的答案,感觉逻辑复杂,看懂有难度。参考后,写了这个程序,也能实现!还望大神指教,是否符合题目要求,哪里还可以优化改进!
- import os
- def file_key(key_word) :
- for each_file in os.listdir(os.curdir) :
- if os.path.splitext(each_file)[1] == '.txt':
- if key_word in open(each_file).read():
- ext = os.getcwd() + os.sep + each_file
- print('在文件【%s】中找到关键字【%s】'%(ext,key_word))
-
- f = open(each_file)
- row = 0
- for eachline in f:
- row += 1
- if key_word in eachline:
- print('关键字出现在第 %d 行,'% row,end='')
- pos = []
- begin = eachline.find(key_word)
- while begin != -1:
- pos.append(begin+1) # 用户的角度是从1开始数
- begin = eachline.find(key_word,begin+1) # 从下一个位置继续查找
- print('第 %s 个位置。'% pos)
- print()
- print(spacing)
-
- if os.path.isdir(each_file) :
- os.chdir(each_file)
- file_key(key_word)
- os.chdir(os.pardir) # 递归调用后切记返回上一层目录
- key_word = input('请将该代码放于待查找的文件夹内,请输入关键字:')
- decide = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):'% key_word)
- spacing = '====================================================================\n'
- print(spacing)
- if decide in ['YES','Yes','yes']:
- file_key(key_word)
复制代码 |
|