ダブルクリックで実行できるPythonプログラムの作成方法 その1:データを読み込み、リストに格納

スポンサーリンク

より簡単に実行できるPythonプログラムを作りたい

前回、Pythonプログラムをダブルクリックだけで実行できるようPythonをインストールしました。

PythonをMacにインストールしてみる:ダブルクリックだけで実行できる環境を作りたい!
何故、Pythonをインストールするのか?今回はMacBook AirにPythonをインストールする方法を解説していこうかなと思います。しかしPythonの開発環境としてAnacondaをインストールしているのに、何故P...

しかしそれだけではこれまでAnacondaで作成したPythonプログラムをダブルクリックで実行はできません。

ということでどうやったらダブルクリックだけで実行できるプログラムを作成できるか。

それを解説していきたいと思います。

とりあえず今回は「数値データが入っているCSVファイルを読み込み、なんか計算をして、グラフにして書き出して、同時にCSVファイルを書き出す」というプログラムを作ってみましょう。

まずは今回使う数値データを決めましょう。

ということでこんな数値データを作ってみました。

<testdata.csv>

1, 2, 10
2, 4, 20
3, 8, 30
4, 16, 40
5, 32, 50
6, 64, 60
7, 128, 70
8, 256, 80
9, 512, 90
10, 1024, 100

いつも通りダウンロードはご自由に。

最初の列がX値、真ん中と右側を掛け算してたものをY値としてグラフを作成し、さらに新しいファイルとして書き出してみましょう。

また今回は勉強のためになるべく一歩一歩解説するために、めんどくさいプログラムを書いていきます。

では先ほどの「testdata.csv」を置いたフォルダと同じところに新しいPythonプログラムを作成し、始めていきましょう。

スポンサーリンク

ライブラリのインポート

まずはライブラリのインポートを行います。

今回使うのは「matplotlib」と「csv」だけ。

ということでこんな感じ。

from matplotlib import pyplot as plt
import csv

今回はAnacondaの最初のセルはライブラリのインポートだけに使うことにします。

つまりこんな感じ。

スポンサーリンク

ファイルの読み込み

次にファイルの読み込みを行います。

今回は前回紹介したnumpyを使ったCSVファイルの読み込みではなく、通常のファイル読み込みを使っていきます。

Pythonでcsv、tsvの扱い方 〜ファイルの作成&読み書き〜
csv、tsvとは?csv、tsvとはファイル形式のことで、それぞれComma-Separated Values、Tab-Separated Valueの略になります。日本語でいうと、カンマで分けた値とタブで分けた値といっ...

ということでこんな感じ。

filename = "testdata.csv"
output_fig = "out_fig.png"
output_data = "test_out.csv"

f = open(filename, "r")
reader = csv.reader(f)

for row in reader:
    print(row)
    
f.close()

実行結果
['1', ' 2', ' 10']
['2', ' 4', ' 20']
['3', ' 8', ' 30']
['4', ' 16', ' 40']
['5', ' 32', ' 50']
['6', ' 64', ' 60']
['7', ' 128', ' 70']
['8', ' 256', ' 80']
['9', ' 512', ' 90']
['10', ' 1024', ' 100']

「filename」、「output_fig」、「output_data」はそれぞれデータを読み込むファイル名、グラフを保存する時のファイル名、CSVデータを保存する時のファイル名です。

ここでは最初の「filename」しか使いませんが、あとで使うので先に設定しておきます。

そしてこの部分でファイルを開き、それぞれの行を「print(row)」で表示しています。

f = open(filename, "r")
reader = csv.reader(f)

for row in reader:
    print(row)
    
f.close()

次にデータを変数に格納していきますが、その時は「print(row)」のところを書き換えていきます。

スポンサーリンク

データを変数に格納

ということでデータを変数に格納していきます。

先ほどのプログラムを書き換え、こんなふうになります。

filename = "testdata.csv"
output_fig = "out_fig.png"
output_data = "test_out.csv"

f = open(filename, "r")
reader = csv.reader(f)

x = []; y1 = []; y2 = []

for row in reader:
    x.append(int(row[0]))
    y1.append(int(row[1]))
    y2.append(int(row[2]))
    
print(x)
print(y1)
print(y2)
    
f.close()

実行結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

「x = []; y1 = []; y2 = []」でX値と2つのY値を格納するための空のリストx、y1 、y2を作成します

そしてx.append(int(row[0]))というプログラムでX値をリストxに格納、y1.append(int(row[1]))でリストy1に格納、y2.append(int(row[2]))でリストy2に格納します。

ちなみにint(row[0])としているのは、読み込んだ直後は文字型であるstr型となっているため、整数型であるint型に直しているということです。

とりあえずprint(x)、print(y1)、print(y2)でちゃんとそれぞれの値が取れていることが確認できました。

結構長くなってきましたので、続きは次回に回しましょう。

ダブルクリックで実行できるPythonプログラムの作成方法 その2:計算とグラフ表示・保存、CSVファイル保存
ダブルクリックで実行できるPythonプログラムに向けて前回から簡単に実行できるPythonプログラムを作成する方法の解説を行なっています。といいつつもまだまだ準備段階。今回は前回から続いて、格納したデータ...

ということで今回はこんな感じで。

コメント

タイトルとURLをコピーしました