📄 mkzip.py
字号:
#!/usr/bin/env python"""\%(_prog)s - analyze imports and generate zipfile for applicationusage: %(_prog)s -f file [ -z file ] [ -m module ] [ -h ]-f file: analyze imports made by file-z file: write zip file to file (default is basename of -f arg w/ .zip ext)-m module: analyze this module (default is basename of -f arg)"""import sysimport osimport getopt_prog = os.path.basename(sys.argv[0])def usage(msg=""): if msg: print >> sys.stderr, msg print >> sys.stderr, (__doc__ % globals())def main(args): try: opts, args = getopt.getopt(sys.argv[1:], "hm:z:f:b:") except getopt.GetoptError, err: usage(err) return 1 if args: usage("unknown args: %s" % ", ".join(args)) return 1 f = None mod = None zf = None base = None for opt, arg in opts: if opt == "-m": mod = arg elif opt == "-z": zf = arg elif opt == "-f": f = arg elif opt == "-b": base = arg elif opt == "-h": usage() return 0 if f is None: usage("-f arg is required") return 1 if not os.path.exists(f): usage("%s was not found" % f) return 1 if mod is None: mod = os.path.splitext(os.path.basename(f))[0] if zf is None: zf = mod + ".zip" import modulefinder path = sys.path[:] path.insert(0, os.path.dirname(f)) mf = modulefinder.ModuleFinder(path) mf.import_hook(mod) packages = {} import zipfile z = zipfile.PyZipFile(zf, "w") i = p = 0 for key in mf.modules.keys(): m = mf.modules[key] if m.__file__ is not None and m.__file__.endswith(".py"): dn = os.path.dirname(m.__file__) print (base, dn, packages.keys()) if (base is not None and dn.startswith(base) and dn != base and dn not in packages): # just punt and add the entire directory z.writepy(dn) packages[dn] = 1 p += 1 else: z.writepy(m.__file__) i += 1 print "wrote", i, "files and", p, "packages to", zf return 0if __name__ == "__main__": sys.exit(main(sys.argv[1:]))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -