0

some_binary次のようにデータを読み取ることができるというプログラムがあるとします。

some_binary < input

input通常、ディスク内のファイルです。disk に書き込まずにPython からに送信inputしたいと思います。some_binary

たとえば、input通常は次の内容のファイルです。

0 0.2
0 0.4
1 0.2
0 0.3
0 0.5
1 0.7

Python でそのようなものをシミュレートするには、次のようにします。

import numpy as np

# Random binary numbers
first_column = np.random.random_integers(0,1, (6,))

# Random numbers between 0 and 1
second_column = np.random.random((6,))

コマンドラインから呼び出しているかのようにandfirst_columnの連結をフィードし、文字列に収集するにはどうすればよいですか?second_columnsome_binarysome_binary < inputstdout

私は次のものを持っています:

def run_shell_command(cmd,cwd=None,my_input):
      retVal = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stdin=my_input, cwd=cwd);
      retVal = retVal.stdout.read().strip('\n');
      return(retVal);

しかし、正しい方向に向かっているかどうかはわかりません。

4

1 に答える 1

1

はい、あなたは正しい方向に向かっています。

の便利なラッパーであるpythonssubprocess.check_output()関数を使用できますsubprocess.Popen()。より多くのPopenインフラストラクチャが必要です。たとえば、物事が起こるためにcomminucate()は、戻り値を呼び出す必要があります。Popen

何かのようなもの

output = subprocess.check_output([cmd], stdin = my_input)

あなたのケースで動作するはずです。

于 2013-03-26T22:43:42.480 に答える