显示完整路径的python
这里有问题 1.我需要我的结果,需要表现得像显示完整路径的python,python,Python,这里有问题 1.我需要我的结果,需要表现得像 import os def find_method(name): i = 0 found_dic = { "$_GET":[], "$_POST":[], "include":[], "require":[], "mysql_query":[], "SELECT":[], "system":[], "exec":[], "passthru":[], "readfile":[], "fopen":[], "eval":[
import os
def find_method(name):
i = 0
found_dic = { "$_GET":[], "$_POST":[], "include":[], "require":[], "mysql_query":[], "SELECT":[], "system":[], "exec":[], "passthru":[], "readfile":[], "fopen":[], "eval":[] }
for i, line in enumerate(file(name, "r")):
found = False
for key in found_dic:
if key in line.strip():
found_dic[key].append("LINE:"+str(i)+":" + key)
found = True
for key in found_dic:
if found_dic[key]:
print " ", "-"*10, key, "-"*10
for r in found_dic[key]:
print " ",r
def search(dirname):
flist = os.listdir(dirname)
for f in flist:
next = os.path.join(dirname, f)
if os.path.isdir(next):
search(next)
else:
doFileWork(next)
def doFileWork(filename):
ext = os.path.splitext(filename)[-1]
#if ext == '.html': print filename
if ext == '.php':
# print "target:" + filename
find_method(filename)
如果我正确理解了您的问题,您会问如何获取绝对文件路径,那么我如何使用此代码演示类似示例。这个问题已经在问题中得到了回答 要重复答案,您可以在下面找到:
---------- exec ----------
LINE:287:exec
---------- mysql_query ----------
LINE:43:mysql_query
LINE:95:mysql_query
LINE:120:mysql_query
看起来你有两个不同的问题
首先,您显然希望在每批“finds”之前加上它们所在的文件,如下所示: EX)==/var/www/html/zboard/zboard.php== 我不确定这种格式到底应该是什么,但是……您已经在
doFileWork
中获得了所需的所有信息,只是没有打印出来。只需将这一行添加到doFileWork
函数的顶部:
>>> import os
>>> os.path.abspath("mydir/myfile.txt")
如果要保证它是绝对路径,即使是从相对路径开始,只要:
print "EX) === {} ==".format(filename)
其次,您显然希望每个匹配项打印整个匹配行,而不仅仅是匹配的键 同样,你也有你需要的信息;问题是您显式地使用了
键
而不是行.strip()
。只要替换这个:
print "EX) === {} ==".format(os.path.abspath(filename))
……关于这一点:
found_dic[key].append("LINE:"+str(i)+":" + key)
你真的应该使用
os.walk
,而不是试图自己在os.listdir
和os.path.isdir
之上构建它。(另外,next
是一个内置函数,因此您可能不想将其重新绑定以表示其他内容。)我认为这不是他的问题。这并不是说他打印的是相对路径而不是绝对路径,而是他根本没有打印任何路径。
found_dic[key].append("LINE:"+str(i)+":" + key)
found_dic[key].append("LINE:"+str(i)+":" + line.strip())