【发布时间】:2018-02-07 10:01:45
【问题描述】:
我的目标是创建一个在输入文件中搜索凭据的脚本。
我找到了无穷无尽的例子,甚至在 StackOverflow 上,它可以教我如何在文件中搜索一系列单词:
顺便说一句,当我尝试将这些规则应用到我的脚本时,它什么也没给我。
这是我的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('-input', dest='input',help="input one or more files",metavar=None)
args = parser.parse_args()
GrabdirectoryFile = open(args.input,"r",encoding='UTF8')
directoryFile = GrabdirectoryFile.read()
HotWords = ['password', 'admin']
def search_for_lines(filename, words_list):
words_found = 0
for line_no, line in enumerate(filename):
if any(word in line for word in words_list):
print(line_no, ':', line)
words_found += 1
return words_found
search_for_lines(directoryFile,HotWords)
我尝试按照上面提供的 2 个链接上的说明进行操作,但没有成功。
代码肯定被执行并且Python 没有返回错误。
该文件包含许多单词以及一些“密码”和“管理员”,但没有返回任何行。
为什么?
编辑:
亲爱的@Kirk Broadhurst、@SIM、@André Schild、@kasperhj、@Garrett Hyde,我尝试关注您的link 并将我的代码替换为:
with open(args.input) as openfile:
for line in openfile:
for part in line.split():
if "color=" in part:
print (part)
但不幸的是仍然无法正常工作。 @Farhan.K 在下面提供了正确的解决方案,我不得不使用 readlines() 而不是 read()
【问题讨论】: