python - 如何使用 python 将第一个程序的输出链接为第二个程序的输入?

标签 python python-3.x

我有一个用 Python 编写的程序,需要使用该程序的输出值作为同一 python 文件夹中的第二个程序的输入值。我想知道是否可以这样做;如果是这样,请告诉我使用了哪个模块,如果我能得到一个小例子,那就太好了。

例如,下面是第一个程序,从中我可以如何获取输出值“x”以在第二个程序中进行绘制。

from functools import partial

import numpy
import scipy.optimize
import matplotlib.pyplot as pp

def z(x, y):
    return  x * y - 30

x_window = 0, 15
y_window = 0, 5

xs = []
ys = []
for x in numpy.linspace(*x_window, num=200):
    try:
        # A more efficient technique would use the last-found-y-value as a 
        # starting point
        y = scipy.optimize.brentq(partial(z, x), *y_window)
    except ValueError:
        # Should we not be able to find a solution in this window.
        pass
    else:
        xs.append(x)
        ys.append(y)

pp.plot(xs, ys)
pp.xlim(*x_window)
pp.ylim(*y_window)
pp.show()

最佳答案

重新排列代码并将所有内容放入函数中:

# file my_program.py

from functools import partial

import numpy
import scipy.optimize
import matplotlib.pyplot as pp

def z(x, y):
    return  x * y - 30

def make_data(x_window, y_window):


    xs = []
    ys = []
    for x in numpy.linspace(*x_window, num=200):
        try:
            # A more efficient technique would use the last-found-y-value as a 
            # starting point
            y = scipy.optimize.brentq(partial(z, x), *y_window)
        except ValueError:
            # Should we not be able to find a solution in this window.
            pass
        else:
            xs.append(x)
            ys.append(y)
    return xs, ys

def plot(xs, ys, x_window, y_window):         
    pp.plot(xs, ys)
    pp.xlim(*x_window)
    pp.ylim(*y_window)
    pp.show()

if __name__ == '__main__':
    x_window = 0, 15
    y_window = 0, 5
    xs, ys = make_data(x_window, y_window)
    plot(xs, ys, x_window, y_window)

现在,在第二个文件中,您可以从同一文件夹导入它并调用 make_data():

import my_program


x_window = 0, 15
y_window = 0, 5
xs, ys = my_program.make_data(x_window, y_window)

关于python - 如何使用 python 将第一个程序的输出链接为第二个程序的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47827424/

相关文章:

python - 创建多个数据框列,其中包含现有列的计算值

python - 如何使用 Selenium 提取标签内值属性的文本

python - 在 Django 表单中设置动态选择时的验证

python - 使用正则表达式提取代码(不规则的正则表达式键)

python - 如何在python中使用for循环垂直连接1000张图像?

python - django 当前路径 image/25x25 与这些都不匹配

Python 3.0 urllib.parse 错误 "Type str doesn' t 支持缓冲区 API"

python - docker-compose up : utf-8 codec can't decode byte X

python - 如何更改Google语音识别的语言

python pandas dataframe - 根据列值重复行