Dynamic Loading Modules

Riley Porter rileyporter at gmail.com
Sun Jan 18 04:37:57 CET 2009


Hello all,

This is the first time I have posted to this group.  That being said if I am
in the wrong place for this kind of support please let me know.

OK,

So I am writing a log parsing program and wish to allow for the community to
write "parsers".  Basically, what I have in place now is a "modules"
directory that contains .py files that are going to be used to parse
specific log types.

The question is, is there a way to dynamically import whatever is in that
modules directory and make is to the import name is actually the file name..

So after the modules directory is 'os.listdir' and it returns a listing of
modules (actually just .py files) IE: ng1-fw.py, cisco_asa_fw.py, etc... I
can just in the next line of code call:

ng1-fw.Parse(long_file)  #assuming the ng1-fw.py file has a Parse Function

right now using imp I got it to where i can say like:
x =  imp.load_source(md5.new(code_path).hexdigest(), code_path, f)
#assuming that I gave it the path and filename for ng1-fw.py
I can do this:

x.Parse(log_file)

But what I am really after is the ability to do this:
ng1-fw.Parse(log_file)

The reason again behind this is so that there is no need to "hard code"
parser file names.

Did I make myself clear?  Please let me know if I need to explain that
better.

Thanks !
-- 
Riley Porter
Network Security Engineer

Offensive Security - OSCP
SANS GIAC - GCIH
CCNA, Security+
ACSA - Arcsight Security Analyst
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20090117/25b1a2dc/attachment.html>


More information about the Python-list mailing list