【问题标题】:How to use a python function with the principal python script如何将 python 函数与主要 python 脚本一起使用
【发布时间】:2015-01-19 02:59:19
【问题描述】:

我想在主 python 脚本中使用另一个 python 脚本创建一个函数。此函数生成一个变量以及如何在主体脚本中使用它

加载一个函数

import subprocess
subprocess.call(["python", "myscript.py"])
subprocess.call(["python", "myscript2.py"])

ty

【问题讨论】:

  • 为什么不简单地 import 另一个 python 脚本?
  • @jme ?我不明白
  • 听起来您在myscript2.py 中定义了一个函数(我们称之为foo),并且您希望能够在myscript.py 中使用该函数。您的思考过程是,您将从myscript.py 运行python myscript2.py 并保存结果,但您可能只需在myscript.py 中写入import myscript2; myscript2.foo() 即可获得相同的结果。
  • 如果脚本根文件夹中不存在该脚本,它将起作用
  • 然后将它们捆绑为一个包或将包含它们的目录附加到sys.path

标签: python subprocess call


【解决方案1】:

您可以在subprocess 中使用Popen.communicatesubprocess 获得回报。像这样:

from subprocess import Popen, PIPE

p = Popen(['python', 'myscript.py', 'olink'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = p.communicate(b"input data that is passed to subprocess' stdin")
print output

Popen.communicate 与进程交互:发送数据到stdin。从stdoutstderr 读取数据,直到到达文件末尾。

因此,在您的 python 脚本中,您可以将变量打印到 stdout 并使用它来获取其值。

或者您可以简单地将该变量的内容写入文件,然后在主进程中从该文件中读取。

希望对你有帮助。

【讨论】:

  • 我忘记了脚本需要参数的一个细节` p = Popen(['python', 'myscript.py' , olink] 是否正确?`
  • 在带有函数 He(It) 的脚本上有一些东西要做。 ?
  • @parcal 对不起,我没明白你的意思。
  • @parcal 正如我所说,您需要将内容打印到标准输出,以便此代码可以获得输出。
猜你喜欢
  • 1970-01-01
  • 2021-06-22
  • 2021-09-26
  • 2019-11-02
  • 2017-11-05
  • 2012-08-04
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多