データファイルの読み込みはできるけど、データファイルとして書き出す方法がわからない人はいませんか?
この記事では、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.2
CSVファイルの書き出し
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構文を使ってみましょう!