質問: pythonでのオブジェクトのテキストファイルを行いたいと思っています. 例えば,以下のような雛形となるテキストをあらかじめ用意しておき, 変更したい部分(変数1-4)に文字や行列を代入してテキストとして出力したいです. ``` Date : 変数1 Weather : 変数2 Temperature : 変数3(行列) Humidity : 変数4(行列) ``` forループなどを使えば可能なのはわかっていますが,より簡単なやり方がないのかと探しています. YAMLやJSONというのがそれに近いと思ったのですが,初心者であるためこれらを用いればよいのかもわかりません. どのようにすればこのようなファイル出力ができるのか教えたいただけたら幸いです. よろしくお願いいたします。
回答: `str.format()` 関数を使うやり方は如何でしょうか。 ``` # これがテンプレートです。 # ここではテンプレートをそのまま文字列として代入していますが、 # テキストファイルから読み込んでも良いでしょう。 template = '''Date : {date} Weather : {weather} Temperature : {temp} Humidity : {humid} ''' if __name__ == "__main__": date = "Jan 26, 2018" weather = "晴れ" temp = 3 humid = [[10.0, 20.0, 30.0], [40.0, 50.0, 60.0], [70.0, 80.0, 90.0]] # str.format() 関数を使ってテンプレート部分に代入し、print() 関数で出力します。 print(template.format(date=date, weather=weather, temp=temp, humid=humid)) ``` 出力 ``` $ python3 answer.py Date : Jan 26, 2018 Weather : 晴れ Temperature : 3 Humidity : [[10.0, 20.0, 30.0], [40.0, 50.0, 60.0], [70.0, 80.0, 90.0]] ```