【问题标题】:How to get return type from Python script如何从 Python 脚本中获取返回类型
【发布时间】:2020-12-03 06:36:54
【问题描述】:

我将以下代码保存为some_file.py

def some_function(num):
    return int(num) + 1


if __name__ == "__main__":
    val = some_function(sys.argv[1])

当我像这样运行脚本时:

some_file.py 10

我想捕获返回值。 我尝试了这种方法,但没有成功:

if __name__ == "__main__":
        val = some_function(sys.argv[1])
        sys.exit(val)

【问题讨论】:

  • 您如何查看结果?它将在变量$?
  • 我不太明白 - 为什么你期望整个脚本有一个“返回值”?你想用它做什么?您只是想查看结果吗?或者你想让其他程序知道脚本运行时发生了什么
  • 是的,我希望它在一些变量中,因为最后我想从 Jenkins 运行这个脚本并使用这个变量
  • python脚本如果要运行不写python some_file.py,开头需要#!/usr/bin/python
  • RESULT=$(python some_file.py 10) 如果您只是打印值,则可以在 shell 脚本中工作,但 Jenkins 有自己的捕获标准输出的方式

标签: python jenkins exitstatus


【解决方案1】:

退出码放在$?

python some_file.py 10
echo $?

将打印11

退出代码是一种有限的机制,它只允许从 0 到 255 的值。通常捕获输出更合适。

if __name__ == "__main__":
    val = some_function(sys.argv[1])
    print(val)

那么你可以使用

somevariable=$(python some_file.py 10)
echo "$somevariable"

【讨论】:

  • 在哪里把这个 $ 放在 sys.exit(val) 中?
  • 你没有,你在shell中使用它,那是存储退出值的地方。
  • 是否也可以从 Jenkins Post Build Script 以这种方式运行它?
  • 我不认识詹金斯。
猜你喜欢
  • 2015-10-06
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多