|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
寻找当前目录下文本文件中关键字的位置
- from pathlib import Path
- kw = input("请将该脚本放于待查找的文件夹内,请输入关键字:")
- m = list(Path.cwd().glob("**/*.txt")) #m -> 所有文件
- print(m)
- g = [] #->文件对应位置
- n = {}
- for each in m:
- each.open('r')
- x = each.read()
- if kw not in x:
- each.close()
- continue
- else:
- g.append(each)
- for i in range(x.count('\n')): #每一行寻找
- j = each.readline()
- if kw in j:
- n[i+1] = j.find(kw) #->行数对应所在位置
- else:
- continue
- g.append(n)
- each.close()
- ans = input(f"请问是否需要打印关键字【{kw}】在文件中的具体位置(YES/NO):")
- for each in range(0,len(g),2):
- print(f"在文件【{g[each]}】中找到关键字【{kw}】")
- if ans == 'YES':
- print(f"关键字出现在第{list(g.keys())[each+1]}行,第{g[each+1]}个位置")
复制代码
报错说each是路径而不是文件,请问这个怎么改
- Traceback (most recent call last):
- File "C:\Users\Zhou Yiyun\Desktop\测试\^第030讲-搜索关键字.py", line 11, in <module>
- x = each.read()
- AttributeError: 'WindowsPath' object has no attribute 'read'
复制代码
求助求助
第 10 行代码 , each.open('r') 改成 each = each.open('r'),另外不建议用 int 类型作为字典的键
你代码的 30 行,g 是列表 没有 keys() 方法,你应该是想对 n 进行调用 keys() 方法吧?
|
|