|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import os
def word_in_file(file,word): #判断文件中是否有关键字
file1 = open(file)
for each_line in file1:
if word in each_line:
return True
return False
def print_line(dict1): #这里看了答案才知道要对字典排序
keys = dict1.keys()
keys = sorted(keys)
print('=====================================')
for each in keys:
print('关键字出现在第%s行,第%s个位置。' % (each,dict1[each]))
def word_find(path,word):
os.chdir(path)
for each in os.listdir(path):
if os.path.isfile(each): #判断是否是文件或是文件夹
temptype = os.path.splitext(each)[1]
if temptype == '.txt':
result1 = word_in_file(each,word) #判断文件中是否有关键字
if result1:
path1 = os.path.join(os.curdir,each)
print('在文件【%s】中找到关键字【%s】' % (path1,word))
if decide == 'YES': #如果决定打印
dict1 = dict()
lines_num = 0
for each_line in file1:
list1 = []
lines_num += 1
if word in each_line:
get = each_line.find(word)
list1.append(get + 1)
get = each_line.find(word,get + 1) #当初没想过要+1继续检索,看答案改的。。
dict1[lines_num] = list1
file1.close()
print_line(dict1)
else: #如果是文件夹的情况
path2 = os.path.join(os.curdir,each)
word_find(path2,word)
word = input('请将该脚本放于待查找的文件夹内,请输入关键字:')
dicide = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' % word)
path = os.getcwd()
word_find(path,word)
上次参考了大佬的建议稍微改了改(虽然还是好多if。。。),自己也对照了答案,发现许多原本没想到或者不会的问题,可是现在还是运行不了。。。报错说找不到指定路径是怎么回事。。。 |
|