鱼C论坛

 找回密码
 立即注册
查看: 1021|回复: 3

关于课后作业030讲第4题

[复制链接]
发表于 2020-6-18 22:12:47 | 显示全部楼层 |阅读模式

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

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

x
我写的代码提示MemoryError,但是用甲鱼的答案却不会有这种情况,求助问题出在了哪里?怎么解决
  1. import os


  2. def search(key):
  3.     files = os.walk(os.getcwd())  # 列出路径中的每一个文件
  4.     txt = []  # 空的列表用于放txt文件
  5.     for each_file in files:
  6.         for each in each_file[2]:  # 文件后缀判断是不是txt
  7.             if os.path.splitext(each)[1] == '.txt':
  8.                 txt.append(os.path.join(each_file[0], each))

  9.     for each_txt in txt:  # 对于每一个txt文件
  10.         f = open(each_txt)
  11.         f_all = f.read()
  12.         if key in f_all:
  13.             f.seek(0, 0)
  14.             f_search = list(f.readlines())  # 以列表形式列出每一行
  15.             f.close()
  16.             local = dict()  # 空的字典用于放位置
  17.             for i in range(len(f_search)):
  18.                 if key in f_search[i]:  # 对于列表中的每一个元素查找关键字
  19.                     pos = []
  20.                     local.setdefault(i + 1, 0)
  21.                     begin = f_search[i].find(key)  # 查找关键字第一次出现的位置
  22.                     while begin != -1:
  23.                         pos.append(begin + 1)
  24.                         begin = f_search[i].find(key, begin)  # 查找后续出现的位置
  25.                     local[i + 1] = pos
  26.                     if choose.upper() == 'YES':
  27.                         print('==========')
  28.                         print('在文件【%s】中找到关键字【%s】' % (each_txt, key))
  29.                         for each_key in local.keys():
  30.                             print('关键字出现在第【%s】行,第【%s】个位置' % (each_key, str(local[each_key])))

  31. key = input('请将该脚本放入待查找的文件夹内,请输入关键字:')
  32. choose = input('请问是否需要打印关键字【%s】在文件中出现的具体位置(YES/NO):' % key)
  33. search(key)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-18 22:46:40 | 显示全部楼层
 运行没错误。给一下具体的截图?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 18:18:05 | 显示全部楼层
徐颖科 发表于 2020-6-18 22:46
 运行没错误。给一下具体的截图?

[img][/img]
显示这样的,是我的电脑问题吗?你运行我的程序能输出正确结果吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 18:18:52 | 显示全部楼层
徐颖科 发表于 2020-6-18 22:46
 运行没错误。给一下具体的截图?

就是这样
1592561782(1).jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 04:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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