データファイルの読み込みはできるけど、データファイルとして書き出す方法がわからない人はいませんか?
この記事では、Pythonを使ってデータファイルを書き出す方法を具体的に解説していきます。
Pythonで学ぶ偏微分方程式の数値シミュレーションの技術書を販売中
計算方法、グラフやアニメーションの作成方法、計算ログの残し方を惜しみなく解説しています!
理論と実装の溝を埋めてくれる良書です!
書き出すだけならこれだけでいい
ファイルを書き出したいならopen()関数とwriteを使えば簡単にできます。
open()関数は読み込みの際にはr(読み込みモード)で使いますが、書き込みではw(書き込みモード)で使います。
いきなりですが、サンプルコードを以下に載せます。
サンプルコード
outfile = open('AvrgTmp_Kyoto2018.dat', 'w')
outfile.write('# averaged temperature in 2018 @ Kyoto city\n')
outfile.write('# 01: month 02: averaged temperature in daytime\n')
outfile.write('1 3.9\n')
outfile.write('2 4.4\n')
outfile.write('3 10.9\n')
outfile.write('4 16.4\n')
outfile.write('5 20.0\n')
outfile.write('6 23.4\n')
outfile.write('7 29.8\n')
outfile.write('8 29.5\n')
outfile.write('9 23.6\n')
outfile.write('10 18.7\n')
outfile.write('11 13.5\n')
outfile.write('12 8.2\n')
outfile.close()コードの解説
outfile = open('AvrgTmp_Kyoto2018.dat', 'w')AvrgTmp_Kyoto2018.datは出力するファイル名です。自分の好きな名前にしても問題ありません。
このコードで何をしているかというと、outfileという名前の何も書かれていないキャンバスを作っています。
この後で、キャンバスに何を書くかを指定します。(outfileは勝手に名付けているだけですので、名前は自由に決めてください。)
outfile.write('xxxx')「outfileにxxxxを書く」という意味のコードです。上のサンプルコードでは、行の末尾に改行を加えたいので\nを書いてます。
outfile.close()openしたものはcloseしましょう。
実際にプログラムを動かしてみよう
まずは、Desktop/Dr.code/Python/data-analysis/Output_Fileというフォルダを作り、その中にoutput_file.pyという名前の上記サンプルコードが書かれたファイルを保存します。
次に、ターミナルを開いて、cdでcwdをDesktop/Dr.code/Python/data-analysis/Output_Fileにします。python output_file.pyと入力すれば、プログラムは起動します。
出力結果
プログラムが正常に起動すると、output_file.pyと同じ階層(フォルダ)にAvrgTmp_Kyoto2018.dat という名前のファイルが書き出されているはずです。開いて中身を確認すると、以下のようになっているはずです。
# averaged temperature in 2018 @ Kyoto city
# 01: month 02: averaged temperature in the daytime
1 3.9
2 4.4
3 10.9
4 16.4
5 20.0
6 23.4
7 29.8
8 29.5
9 23.6
10 18.7
11 13.5
12 8.2CSVファイルの書き出し
csvファイルとは Comma-Separated Valuesファイルの略で、コンマ区切りされたファイルのことです。
よって、スペース区切りだったところをコンマ区切りに変更すれば簡単にcsvファイルを書き出せます。
outfile = open('AvrgTmp_Kyoto2018.csv', 'w')
outfile.write('# averaged temperature in 2018 @ Kyoto city\n')
outfile.write('# 01: month 02: averaged temperature in daytime\n')
outfile.write('1,3.9\n')
outfile.write('2,4.4\n')
outfile.write('3,10.9\n')
outfile.write('4,16.4\n')
outfile.write('5,20.0\n')
outfile.write('6,23.4\n')
outfile.write('7,29.8\n')
outfile.write('8,29.5\n')
outfile.write('9,23.6\n')
outfile.write('10,18.7\n')
outfile.write('11,13.5\n')
outfile.write('12,8.2\n')
outfile.close()(ちょっと応用)with構文を使ったファイルの書き出し
with構文を使うとcloseをわざわざ書く必要がなくなるので、以下のようにコンパクトに記述することができます。
with open('AvrgTmp_Kyoto2018.csv', 'w') as outfile: outfile.write('# averaged temperature in 2018 @ Kyoto city\n') outfile.write('# 01: month 02: averaged temperature in daytime\n') outfile.write('1,3.9\n') outfile.write('2,4.4\n') outfile.write('3,10.9\n') outfile.write('4,16.4\n') outfile.write('5,20.0\n') outfile.write('6,23.4\n') outfile.write('7,29.8\n') outfile.write('8,29.5\n') outfile.write('9,23.6\n') outfile.write('10,18.7\n') outfile.write('11,13.5\n') outfile.write('12,8.2\n')pythonに慣れてきたらぜひwith構文を使ってみましょう!





