|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
和小甲鱼的有所不同,历经数天修改才完成,之后看了小甲鱼的和我写的完全不同,不知如何比较优劣。
- import os
- # 遍历所有txt文件
- # 在所有txt文件中查找关键字
- # 打印所在行数
- # 在确定的行中找到关键词或字的第一个字的位置,打印下标(索引值)
- keyWord = input('请输入你要查找的关键字(词):')
- choice = input('是否需要打印关键字【%s】的具体位置(YES/NO):' % keyWord)
- for root, dirs, files in os.walk(os.getcwd()):
- for each in files: # 遍历所有文件
- if '.txt' in each: # 找到txt文件
- txt = open(os.path.join(root, each), encoding = 'utf-8') # 所有txt文件的编码必须转换为utf-8
- line = 0 # 初始化行数
- ifexit = True # 为了下面只打印一次查询结果而定义的布尔值
- for each2 in txt:
- line += 1 # 统计行数
- list1 = [] # 记录关键字位置,放在这里归零,以防将txt中找到的所有关键字的位置统计在一起
- if keyWord in each2:
- if ifexit: # 此时ifexit为True,打印一次结果,之后ifexit为False,不再打印
- print('文件【%s】中包含关键字【%s】' % (os.path.join(root, each), keyWord))
- ifexit = False
- if choice == 'no':
- continue
- elif choice == 'yes':
- pass
- for i in range(len(each2)):
- if keyWord in each2[i:i + len(keyWord)]:
- list1.append(i + 1)
- print('关键字出现在第%d行,第%s个位置' % (line, list1))
复制代码 |
|