Python功能并调用Args



如果您想称呼它,我正在创建我的第一个Python工具。(我从事IT安全工作,顺便说一句)

直到我尝试从主函数调用功能之前,情况都很好。我敢肯定,我缺少我很简单的事情:(。

#!/usr/bin/python
import sys, getopt, socket
def usage():
    print "-h --help: helpn"
    print "-f --file: File to read bruteforce domain list from.n"
    print "-p --proxy: Proxy address and port. e.g http://192.168.1.64:8080n"
    print "-d --domain: Domain to bruteforce.n"
    print "-e: Turn debug on.n"
    sys.exit()
def main(argv):
    file = None
    proxy = None
    domain = None
    try:
       opts, argv =getopt.getopt(argv, "h:f:p:d:e",["help", "file=", "proxy=", "domain="])
     except getopt.GetoptError as err:
       print str(err)
       usage()
       sys.exit(2)
     for opt, arg in opts:
       if opt in ("-h", "--help"):
       usage()
       sys.exit()
     elif opt in ("-f", "--file"):
       file = arg
     elif opt in ("-p", "--proxy"):
       proxy = arg
     elif opt in ("-d", "--domain"):
       domain = arg
     elif opt in '-e':
       global _debug
       _debug = 1
     else:
        assert Flase, "Unhandled option"
print fread.flist
def fread(file, *args):
   flist = open(file).readlines()
   return

if __name__ == "__main__":
  main(sys.argv[1:])

问题与您的语句print fread.flist。您无法通过这种方式访问在功能中分配的变量。而是将fread()功能更改为以下:

def fread(file, *args):
   flist = open(file).readlines()
   return flist

并将上述语句更改为

print fread(file)

其中 file是您要访问的文件。

最新更新