【问题标题】:Run python script with arguments in another python script with its own arguments在另一个带有自己的参数的 python 脚本中运行带有参数的 python 脚本
【发布时间】:2021-07-07 20:28:34
【问题描述】:

我实现了 here 的建议来运行带有参数的 script1.py,而另一个 script2.py 带有自己的参数,但这会将参数以字符串形式传递给 script1.py。 script1.py 具有 int、float、bool 等类型的参数。所以有没有办法将这些参数以原始类型而不是字符串形式传递给 script1.py,或者我必须将它们全部转换为它们各自在 script1 中的类型.py?

【问题讨论】:

  • 您必须以字符串形式传递它们(因为它们实际上是命令行参数)。
  • 所以我得在script1.py中将它们转换成各自的类型,没有别的办法吧?
  • 如果你打算使用subprocess并将它们作为命令行参数传递,那么不,没有。

标签: python python-3.x subprocess


【解决方案1】:

为此,我会构造一个 bash 命令字符串 cmd 并调用它

import os
cmd = "python3 script2.py arg1 arg2 arg3"
os.system(cmd)

这正是您要放入 bash 的内容 - 因此,bash 应该像往常一样识别类型。

【讨论】:

  • 我想参数的顺序在这里很重要,它应该与 script1.py 中的一致吧?
  • 当然,您必须编写 script2.py,使其按照 script1.py 的顺序接受参数。
【解决方案2】:

你可以尝试使用argparse

例子:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
                    type=int)
args = parser.parse_args()
print(args.square**2)

更多详情请查看: https://docs.python.org/3/howto/argparse.html

【讨论】:

    猜你喜欢
    • 2012-08-21
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多