Pyinstaller传递命令行参数

2024-10-01 00:14:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从hsj.py公司使用pyinstaller。在

在hsj.py公司公司名称:

import sys

file_url = "http://"+str(sys.argv[1])+":5000/fileW"
print(file_url)
x=raw_input()

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

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


Tags: 命令行pyimport名称httpurl参数sys
1条回答
网友
1楼 · 发布于 2024-10-01 00:14:30

我不完全确定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\"")

代码说明

我定义了一个main函数,只是为了让内容更具可读性,如果你想做的不仅仅是打印一个字符串,那就没有必要了。在

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

一些额外的

parser.add_argument是“定义”参数,您可以另外定义一个小的帮助文本,当您键入hsj.py公司-“h”或“帮助”

^{pr2}$

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

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")

相关问题 更多 >