鱼C论坛

 找回密码
 立即注册
查看: 1886|回复: 2

[已解决]课后作业30 第四题 求助解答

[复制链接]
发表于 2016-12-14 10:32:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
源程序:
import os

print('请输入你要搜索的关键字(按回车结束输入):',end = ' ')
key = input()
print('请输入你要搜索的目录路径(例如:C:\\1):',end= ' ')
folder_path = input()


os.chdir(folder_path)
temp = os.walk(os.getcwd())

file_name = []
count = 0
pos = []
key_sub = dict()

for i in temp:
    for each_sub in i[2]:
        if os.path.splitext(each_sub)[1] == '.txt':
            countt =0
            print('================================================================')
            f= open(i[0] + os.sep + each_sub)
            for each_line in f:
                countt += 1

                if key in each_line:
                    file_name.append(i[0] + os.sep + each_sub)
                    print ('在文件【%s】中找到关键字【%s】'%(file_name[count],key))
                    count += 1
                    b = each_line.find(key)
                  
                    while b != -1:

                        pos.append(b+1)
                        b = each_line.find(key,b+1)
                        
                    key_sub[countt] = pos
                    pos = []
                print ('关键字出现在第%d行,第%s个位置'%(countt,key_sub[countt]))
运行结果如下:

请输入你要搜索的关键字(按回车结束输入): 大利空
请输入你要搜索的目录路径(例如:C:\1): E:\新建文件夹 (3)
================================================================
在文件【E:\新建文件夹 (3)\新建文本文档.txt】中找到关键字【大利空】
关键字出现在第1行,第[22, 112]个位置
在文件【E:\新建文件夹 (3)\新建文本文档.txt】中找到关键字【大利空】
关键字出现在第2行,第[23]个位置
================================================================
在文件【E:\新建文件夹 (3)\新建文本文档2.txt】中找到关键字【大利空】
关键字出现在第1行,第[22, 112]个位置
在文件【E:\新建文件夹 (3)\新建文本文档2.txt】中找到关键字【大利空】
关键字出现在第2行,第[18, 60, 150]个位置
在文件【E:\新建文件夹 (3)\新建文本文档2.txt】中找到关键字【大利空】
关键字出现在第3行,第[22, 67, 157]个位置
在文件【E:\新建文件夹 (3)\新建文本文档2.txt】中找到关键字【大利空】
关键字出现在第4行,第[23, 71, 161]个位置
在文件【E:\新建文件夹 (3)\新建文本文档2.txt】中找到关键字【大利空】
关键字出现在第5行,第[22, 70, 160]个位置
Traceback (most recent call last):
  File "C:\Users\Mr.liu\Desktop\sofile.py", line 38, in <module>
    print ('关键字出现在第%d行,第%s个位置'%(countt,key_sub[countt]))
KeyError: 6

这个错误提示是什么意思啊




最佳答案
2016-12-14 11:56:45
字典错误,看下字典里面键 第六个键有没有
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-14 11:56:45 | 显示全部楼层    本楼为最佳答案   
字典错误,看下字典里面键 第六个键有没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-14 13:58:28 | 显示全部楼层
哦 知道了 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 11:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表