|
发表于 2021-3-31 14:46:48
|
显示全部楼层
本帖最后由 jackz007 于 2021-3-31 15:17 编辑
楼主,试试这个代码
- #coding:gbk
- import os
- import sys
- def search(dir , key):
- try:
- for each in os . listdir(dir):
- x = os . path . join(dir , each)
- if os . path . isfile(x):
- fp = open(x , 'rb')
- b = fp . read()
- fp . close()
- e = True
- try:
- txt = b . decode('GBK')
- except:
- try:
- txt = b . decode('UTF-8')
- except:
- sys . stderr . write('*** 无法按文本读取文件 : ' + x + '\n')
- e = False
- if e:
- d , i = [] , 0
- for s in txt . split('\n'):
- c = s . find(key , 0)
- while c != -1:
- d . append((i + 1 , c + 1))
- c = s . find(key , c + len(key))
- i += 1
- if(d):
- sys . stdout . write('在文件 : ' + x + ' 中找到关键字\n')
- for k in d:
- sys . stdout . write('\t第 %d 行,第 %d 列\n' % (k[0] , k[1]))
- elif os . path . isdir(x):
- search(x , key)
- except Exception as e:
- sys . stderr . write(e + '\n')
- p = input('输入路径 [%s] : ' % os . getcwd()) . strip()
- if not p:
- p = os . getcwd()
- k = input('输入关键字 : ') . strip()
- if k:
- search(p , k)
复制代码 |
评分
-
查看全部评分
|