2016-07-26 10 views
-4

ここでは、最大値、最小値、平均値を返す関数calc_property_statisticsが返されます。私はそれらをファイルに書き込む必要があります。関数によって返された値をファイルに書き込む方法

def calc_property_statistics(prop, realisation=0): 

    values = prop.get_values(realisation) 
    maximum = np.max(values) 
    minimum = np.min(values) 
    average = np.average(values) 

    print("maximum: {}, minimum: {}, average: {} for property {}".format(
     maximum, 
     minimum, 
     average, 
     prop)) 

    return (maximum, minimum, average) 
+2

を "書く" あなたの質問は何ですか? https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-filesを見ましたか?後でファイルを読む人は誰ですか(スクリプトまたは人間)?なぜあなたはPythonとは関係のない 'fwrite'という質問にタグをつけましたか? –

+0

これは素晴らしい機能ですが、あなたがファイルに書き込む方法を知りたい場合は[あなたのリソースを見てください](https://docs.python .org/3/tutorial/inputoutput.html)を参照してください。 –

+0

[Python Print String To Text File]の複製があります(http://stackoverflow.com/questions/5214578/python-print-string-to-text-file) – tripleee

答えて

1

これは、ファイルに他の関数からの戻り値を書き込むための関数の例である:最初に

def my_func(): 
    """ 
    this function return some value 
    :return: 
    """ 
    return 'This is some value' 


def write_file(data): 
    """ 
    this function write data to file 
    :param data: 
    :return: 
    """ 
    file_name = r'D:\log.txt' 
    with open(file_name, 'wb') as x_file: 
     x_file.write(data) 


def run(): 
    data = my_func() 
    write_file(data) 

run() 
+0

これは文字列に対して機能します。 OPの例では、複数の値を扱っているようです。後で誰がデータを使用するかによって、それを考慮する必要があります。また、ファイルを正確に処理するために 'with'ステートメントを使用しているときにファイルを閉じる必要はありません。 –

+0

@Tim Pietzckerはチップに関する感謝します(声明あり)。 –

-1
f=open('abc.txt','w') 
def calc_property_statistics(prop, realisation=0): 

    values = prop.get_values(realisation) 
    maximum = np.max(values) 
    minimum = np.min(values) 
    average = np.average(values) 

    return (maximum, minimum, average) 
#-------------------------------------------------------------- 
# Main script body 

x = calc_property_statistics(project.grid_models['Heterogeneity'].properties['Poro']) 
f.write("%s Maximum\n %s Minimum \n %s Average \n" %x) 
f.close() 
+0

エディタに慣れるにはちょっと時間をかけてください(エディタウィンドウの '? 'ボタンをクリックしてください)。 –

0

それはあなたが使用する必要があるファイルの形式から左右される。

これは、値が改行で区切られた単純なテキストファイルに書き込む方法の例です。

x = calc_property_statistics(prop, realisation) 
out_file = open('results.txt', 'wb') 
out_file.write(x[0]) # maximum 
out_file.write('\n') 
out_file.write(x[1]) # minimum 
out_file.write('\n') 
out_file.write(x[2]) # average 
out_file.write('\n') 
out_file.close() 

またはそれが1で行うことができます

... 
out_file.write('{}\n{}\n{}\n'.format(x[0], x[1], x[2])) 
... 
関連する問題