从 py 创建 exe,它在执行时默认传递参数?

Creating exe from py which passes argument by default on execution?

如果我们假设这是 test.py 代码:

import sys
 
for arg in sys.argv:
    print arg
print "Hello World!"

通过使用auto-py-to-exe or pyinstaller or py2exe或...等工具,我们如何制作一个默认传递特定参数的exe?例如:通过使用工具,我们从 test.py 生成 test.exe 并通过执行 test.exe 它将使用 foobar 作为 arg,test.exe 执行的输出是:

foobar
Hello World!

我已经测试过 auto-py-to-exe 和 pyinstaller,但两者都没有这样的选项。我应该提一下,我对使用 [任何] 工具更感兴趣,而不仅仅是修改 python 源代码。因为在更大的来源中修改可能是一项艰巨的任务。

我建议使用 pythons ArgumentParser (https://docs.python.org/2/howto/argparse.html) 并为您的参数设置一个 default= 值。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("argument", default="foobar")
args = parser.parse_args()

print arg
print "Hello World!"

您还可以重组调用的 python 脚本,以使用您需要的参数实现 "main" 方法:

def main(argument):
    print argument
    print "Hello World!"

对于您的特定可执行文件,只需创建单独的包装脚本:

foobar.py

from test import main
test("foobar")

另一个foobar.py

from test import main
test("anotherfoobar")

现在您可以使用 pyinstaller 分别创建 foobar.py 和另一个 foobar.py 的可执行文件。