我正在使用pyinstaller从hsj.py创建一个可执行文件。
hsj.py:
{{1}}
它只打印从传递给它的命令行参数形成的完整URL。
我想在pyinstaller命令本身中传递命令行参数。有办法吗?
答案 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)
import argparse
parser = argparse.ArgumentParser()
#"address" as positional argument
parser.add_argument("adress")
args = parser.parse_args()
print("http://",arg.adress,":5000/fileW")