从 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 的可执行文件。
如果我们假设这是 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 的可执行文件。