python ihooks使用实例
来源:互联网 发布:2017淘宝手机店铺装修 编辑:程序博客网 时间:2024/05/24 02:05
import ihooks
import os
import __builtin__
import imp
import sys
from imp import C_EXTENSION, PY_SOURCE, PY_COMPILED
from imp import C_BUILTIN, PY_FROZEN, PKG_DIRECTORY
BUILTIN_MODULE = C_BUILTIN
FROZEN_MODULE = PY_FROZEN
rootpkg_dir = "ROOT"
class PackageFS:
def __init__(self):
self.prefix_path = r"f: estscript"
def printMsg(self, msg):
print "PackageFS -- ", msg
def CombinePath(self, filenameinPkg):
i = filenameinPkg.find(rootpkg_dir)
pos = i + 1 + len(rootpkg_dir)
filename = filenameinPkg[pos:]
realpath = self.prefix_path + "\" + filename
print "filename = ", filename
print "realpath = ", realpath
return realpath
def isdir(self,path):
realpath = self.CombinePath(path)
self.printMsg("isdir")
print "path = ", path
print "realpath = ", realpath
return os.path.isdir(realpath)
def path_isfile(self, path):
self.printMsg("path_isfile")
realpath = self.CombinePath(path)
return os.path.isfile(realpath)
def openfile(self, x):
self.printMsg("openfile")
parms = list(x)
path = parms[0]
realpath = self.CombinePath(path)
parms[0] = realpath
print " realpath = ", realpath
print "*(tuple(parms))", tuple(parms)
return open(*(tuple(parms)))
def listdir(self, path):
self.printMsg("listdir")
realpath = self.CombinePath(path)
return os.listdir(realpath)
class XyyLoader(ihooks.ModuleLoader):
pass
class XyyHook(ihooks.Hooks):
def __init__(self):
self.pck_fs = PackageFS()
def printMsg(self, msg):
print "XyyHook -- ", msg
def IsInPackage(self, filename):
if (rootpkg_dir in filename):
return True
else:
return False
def path_exists(self, x):
self.printMsg("path_exists")
if (self.IsInPackage(x)):
return self.pck_fs.exists(x)
else:
return os.path.exists(x)
def path_isdir(self, x):
self.printMsg("path_isdir")
if (self.IsInPackage(x)):
re = self.pck_fs.isdir(x)
print "x is path? ", re
return self.pck_fs.isdir(x)
else:
return os.path.isdir(x)
def path_isfile(self, x):
self.printMsg("path_isfile")
if (self.IsInPackage(x)):
return self.pck_fs.isfile(x)
else:
return os.path.isfile(x)
def openfile(self, *x):
self.printMsg("openfile")
print "*"*20, "x = ", x
print "*"*20, "x[0] = ", x[0]
path,right = x
if (self.IsInPackage(path)):
print "call package openfile path = ", path
return self.pck_fs.openfile((path, right))
else:
print "call fs openfile path = " , path
return open(*x)
def listdir(self, x):
self.printMsg("listdir")
if (self.IsInPackage(x)):
return self.pck_fs.listdir(x)
else:
return os.listdir(x)
class XyyImporter(ihooks.ModuleImporter):
pass
xyyhook = XyyHook()
xyyLoader = XyyLoader(xyyhook)
importer = ihooks.ModuleImporter(xyyLoader)
ihooks.install(importer)
import os
import __builtin__
import imp
import sys
from imp import C_EXTENSION, PY_SOURCE, PY_COMPILED
from imp import C_BUILTIN, PY_FROZEN, PKG_DIRECTORY
BUILTIN_MODULE = C_BUILTIN
FROZEN_MODULE = PY_FROZEN
rootpkg_dir = "ROOT"
class PackageFS:
def __init__(self):
self.prefix_path = r"f: estscript"
def printMsg(self, msg):
print "PackageFS -- ", msg
def CombinePath(self, filenameinPkg):
i = filenameinPkg.find(rootpkg_dir)
pos = i + 1 + len(rootpkg_dir)
filename = filenameinPkg[pos:]
realpath = self.prefix_path + "\" + filename
print "filename = ", filename
print "realpath = ", realpath
return realpath
def isdir(self,path):
realpath = self.CombinePath(path)
self.printMsg("isdir")
print "path = ", path
print "realpath = ", realpath
return os.path.isdir(realpath)
def path_isfile(self, path):
self.printMsg("path_isfile")
realpath = self.CombinePath(path)
return os.path.isfile(realpath)
def openfile(self, x):
self.printMsg("openfile")
parms = list(x)
path = parms[0]
realpath = self.CombinePath(path)
parms[0] = realpath
print " realpath = ", realpath
print "*(tuple(parms))", tuple(parms)
return open(*(tuple(parms)))
def listdir(self, path):
self.printMsg("listdir")
realpath = self.CombinePath(path)
return os.listdir(realpath)
class XyyLoader(ihooks.ModuleLoader):
pass
class XyyHook(ihooks.Hooks):
def __init__(self):
self.pck_fs = PackageFS()
def printMsg(self, msg):
print "XyyHook -- ", msg
def IsInPackage(self, filename):
if (rootpkg_dir in filename):
return True
else:
return False
def path_exists(self, x):
self.printMsg("path_exists")
if (self.IsInPackage(x)):
return self.pck_fs.exists(x)
else:
return os.path.exists(x)
def path_isdir(self, x):
self.printMsg("path_isdir")
if (self.IsInPackage(x)):
re = self.pck_fs.isdir(x)
print "x is path? ", re
return self.pck_fs.isdir(x)
else:
return os.path.isdir(x)
def path_isfile(self, x):
self.printMsg("path_isfile")
if (self.IsInPackage(x)):
return self.pck_fs.isfile(x)
else:
return os.path.isfile(x)
def openfile(self, *x):
self.printMsg("openfile")
print "*"*20, "x = ", x
print "*"*20, "x[0] = ", x[0]
path,right = x
if (self.IsInPackage(path)):
print "call package openfile path = ", path
return self.pck_fs.openfile((path, right))
else:
print "call fs openfile path = " , path
return open(*x)
def listdir(self, x):
self.printMsg("listdir")
if (self.IsInPackage(x)):
return self.pck_fs.listdir(x)
else:
return os.listdir(x)
class XyyImporter(ihooks.ModuleImporter):
pass
xyyhook = XyyHook()
xyyLoader = XyyLoader(xyyhook)
importer = ihooks.ModuleImporter(xyyLoader)
ihooks.install(importer)
- python ihooks使用实例
- python使用socket实例
- 一个Python使用实例
- python 使用ldap实例
- Python format 使用实例
- python列表list使用实例
- 使用Python绘制图表实例
- python lxml xpath 使用实例!
- python使用xmlrpc实例讲解
- python log模块使用实例
- python csv模块使用实例
- python time模块使用实例
- appium python api使用实例
- python selenium expected_conditions使用实例
- python selenium expected_conditions使用实例
- Python requests库使用实例
- python使用多线程实例讲解
- Python MySQL使用与实例
- 逼迫自己
- OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect
- [搜索]DFS+BFS
- HDU 1813 Escape from Tetris IDA*搜索
- LWUIT引路蜂地图开发示例:本地查询
- python ihooks使用实例
- Qt——转战Java?
- 学习Joomla3--修改网页图标
- SAP作业类型应用简介
- 动态代理
- C++标准库和 STL 的关系
- 苹果iOS编程语言成为Top 3编程语言 紧随C语言、Java
- vmware8 下设置共享文件夹全手册(客户机windows XP,ubuntu,宿主机win 7/XP)
- struts2的拦截器拦截ajax请求