Python函数和调用args

时间:2014-01-18 01:38:40

标签: python args

我正在创建我的第一个python工具,如果你想调用它。 (我在IT安全部门工作,顺便说一句)

在我尝试从main函数调用函数之前,它一直很顺利。我确信这很简单,我不知道:(。有人能指出我正确的方向吗?然后随意指出并笑。

#!/usr/bin/python

import sys, getopt, socket

def usage():
    print "-h --help: help\n"
    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:8080\n"
    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:])

1 个答案:

答案 0 :(得分:0)

问题在于您的陈述print fread.flist。您无法以这种方式访问​​在函数内分配的变量。而是将fread()功能更改为以下内容:

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

并将上述语句更改为

print fread(file)

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