Pyinstaller传递命令行参数

时间:2018-02-11 07:07:28

标签: python pyinstaller

我正在使用pyinstaller从hsj.py创建一个可执行文件。

hsj.py:

{{1}}

它只打印从传递给它的命令行参数形成的完整URL。

我想在pyinstaller命令本身中传递命令行参数。有办法吗?

1 个答案:

答案 0 :(得分:0)

我不完全确定x=raw_input()应该做什么......

但我建议您使用内置模块 argparse

import argparse

 def main(arg):
     file_url = "http://"+str(sys.argv[1])+":5000/fileW"
     return file_url

 if __name__ == "__main__":

      parser = argparse.ArgumentParser()

      #"address" as positional argument
      parser.add_argument("adress")
      args = parser.parse_args()

      if args.adress:
           print(main(args.adress))
      else:
           pass
           #OR:
           #print(main("default adress"))
           #OR:
           #print("TypeError: hsj.py missing 1 required positional argument: \"address\"")

代码说明

我定义了一个主要功能,只是为了让你的东西更具可读性,如果你想做的不仅仅是打印一个字符串,这是不必要的。

if __name__ == "__main__":确保hsj.py作为脚本运行,而不是用作模块。

一些额外的

parser.add_argument是"定义"参数,您可以另外定义一个在键入" hsj.py -h"时出现的小帮助文本。或" - 帮助"

parser.add_argument("adress", help="print out file url")

或定义所需的输入类型(默认情况下为字符串,因此在您的情况下不需要):

parser.add_argument("adress", type=int)

短版和ookk版:

import argparse

parser = argparse.ArgumentParser()

#"address" as positional argument
parser.add_argument("adress")
args = parser.parse_args()

print("http://",arg.adress,":5000/fileW")