2017-12-15 48 views
2

私はPythonで書かれたプログラムを持っており、このプログラムの出力値を同じpythonフォルダの2番目のプログラムへの入力値として使用する必要があります。それが可能なのか分かりますか?もし私が小さなモジュールを手に入れることができれば、どのモジュールが使われているか教えてください。どのようにして、第1プログラムの出力を第2プログラムの入力として、Pythonを使用してリンクすることができますか?

たとえば、以下は最初のプログラムです。これから、出力値 'x'を2番目のプログラムでプロットする方法を示します。

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() 

答えて

0

bashの、あるいはWindowsはコマンドプロンプト、あなただけpipe'emことができます。

> python prog1.py | python prog2.py 
2

はあなたのコードを並べ替えや機能にすべてをかける:

# 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) 

さて、2番目のファイルには、あなたがそれをインポートすることができます必要な値を返す最初のプログラムでは

import my_program 


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

をしてテキストファイルに保存し、2番目のプログラムでファイルを開いて、目からの値を使用しますし、同じフォルダからmake_data()を呼び出しますあなたの2番目のプログラムへの入力としてインポートされたファイル。

関連する問題