機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【python】【初心者】tkinterを使ってcsvファイルを読み取る方法(2/3)

pythonTkinterCSVを読み取る方法 part2

■はじめに

前回、CSVファイルからデータを読み取る方法を紹介しました。 

stjun.hatenablog.com

ただ、次のようにファイルパスを指定するため毎回書き直すのは非常に面倒です。

data_1, data_2,data_3= np.loadtxt("./data01.csv", skiprows=2, unpack=True)

そこで今回、tkinterを使って任意のファイルをマウスクリックで選択できる方法紹介します。これは前回紹介した下記流れの①に当たります。

tkinterを使って任意のCSVファイルを指定←part2(今回)

②その指定したCSVファイルから欲しい情報を抜き出す←part1

③抜き出した情報をpython上で計算してExcelファイルとして出力←part3(次回)

 

2020/01/26追記:プログラミング初心者に向けたpythonの勉強法と手順を記事にしました。

stjun.hatenablog.com

 

■コード

忙しい方やpythonのコードを自力で読んで理解できる方向けに、先にコードを載せます。動作環境はAnaconda(python3.7)です。

import tkinter as tk
import tkinter.filedialog as fl
import tkinter.messagebox as mb
import numpy as np

root=tk.Tk()

#ファイルパスをマウスで選ぶ
#ユーザー名にお使いのPCの名前を入れてください
def get():
    filetype=[("all file","*")]    
    path=fl.askopenfilename(initialdir="C:/Users/ユーザー名/Desktop",filetypes=filetype)
    mb.showinfo("pathの表示",path)
    
    #以下は前回と同じ、CSVファイルのデータを読み込み表示させる
    data_1, data_2,data_3= np.loadtxt(fname=path, skiprows=2, unpack=True)
    print(data_1)
    print(data_2)
    print(data_3)

button=tk.Button(text="開く",command=get)
button.pack()

root.mainloop()

コードを実行すると次画面がでてきます。

f:id:stjun:20190729213841p:plain

 

ここで開くボタンを押すと次のように選択画面が開きます。

f:id:stjun:20190729214116p:plain

ここから開きたいファイルを選択してあげると次のようにファイルパスが表示されます。今回はCドライブにある前回と同じdate01.csvを選択しました。

f:id:stjun:20190729214222p:plain

ファイルを開くと前回と同じように、自動でCSVファイルのデータが読み取られます.

f:id:stjun:20190724221311p:plain

 

■自分が使ってるお得情報の紹介

私はAmazon kindle unlimitedというサービスを1年以上利用しています。

これは月額980円で 和書12万冊以上の電子書籍を読めるサービスです。

ビジネス本、雑誌、漫画、技術本など様々な本を読むことができます。10冊まで端末にダウンロードできるのでネット環境がなくても(オフラインでも)見れます。

なおkindle unlimitedは最初の30日間無料のため、気軽に登録してみて、あまり読みたい本が無ければすぐに解約しても問題ありません。

それか30日内に気になる本を全て読破すれば実質タダです。

ぜひ気になった方はチェックしてみて下さい。

なおkindleにない本等を買う時はamazonギフト券(amazonで使えるポイント)を買い、ポイントで数冊まとめて買った方がお得です。

ギフト券(ポイント)は買ったら10年も有効で、ポイントが付きます。さらに本をまとめ買い(2冊以上同時に)買うと、ポイントがもらえます。

https://www.amazon.co.jp/b?ie=UTF8&node=5431437051

学生さんであればkindle unlimitedよりも年2450円(月210円程度)で映画見放題、音楽聞き放題、本読み放題の「prime student」がおすすめです。

以下に私がkindle unlimitedで読んだ本を載せておきます。

さおだけ屋はなぜ潰れないのか? 身近な疑問からはじめる会計学 (光文社新書)

さおだけ屋はなぜ潰れないのか? 身近な疑問からはじめる会計学 (光文社新書)

  • 作者:山田 真哉
  • 出版社/メーカー: 光文社
  • 発売日: 2005/02/16
  • メディア: 新書
 
多動力 (NewsPicks Book) (幻冬舎文庫)

多動力 (NewsPicks Book) (幻冬舎文庫)

 

 

■雑誌系

 

MONOQLO (モノクロ) 2020年 02月号 [雑誌]

MONOQLO (モノクロ) 2020年 02月号 [雑誌]

 
家電批評 2020年 1月号 [雑誌]

家電批評 2020年 1月号 [雑誌]

  • 作者: 
  • 出版社/メーカー: 晋遊舎
  • 発売日: 2019/12/03
  • メディア: Kindle
 
ロードバイク完全メンテナンス (エイムック 3544 BiCYCLE CLUB別冊)

ロードバイク完全メンテナンス (エイムック 3544 BiCYCLE CLUB別冊)

  • 作者: 
  • 出版社/メーカー: エイ出版社
  • 発売日: 2016/11/29
  • メディア: ムック
 
繰り返し作りたくなる!  ラク弁当レシピ (エイムック 3680)

繰り返し作りたくなる! ラク弁当レシピ (エイムック 3680)

 
Tarzan(ターザン) 2020年1月23日号 No.779 [内臓脂肪 皮下脂肪すっきり落とす!] [雑誌]

Tarzan(ターザン) 2020年1月23日号 No.779 [内臓脂肪 皮下脂肪すっきり落とす!] [雑誌]

  • 作者: 
  • 出版社/メーカー: マガジンハウス
  • 発売日: 2020/01/04
  • メディア: Kindle
 
DIME(ダイム) 2020年 03 月号 [雑誌]

DIME(ダイム) 2020年 03 月号 [雑誌]

  • 作者: 
  • 出版社/メーカー: 小学館
  • 発売日: 2019/12/16
  • メディア: 雑誌
 

 

■説明

def get():
    filetype=[("all file","*")]    
    path=fl.askopenfilename(initialdir="C:/Users/ユーザー名/Desktop",filetypes=filetype)

 filetype=[("all file","*")] ではどんな拡張子のファイルを開きたいかを決めます。

今回は特に指定するつもりはなかったのでall fileとしました。もしCSVしか読み取らないというのであればcsvを指定してあげても良いです.

次にaskopenfilenameを使います。

  1. initialdirはボタンを押したときにどこのフォルダを開くかを決めます。今回はデスクトップにしていますが、例えばデスクトップにResultという名前のフォルダを作成してそこにCSVファイルを入れる場合は/Desktop/Resultとしてあげると良いです.
  2. filetypesはどんな拡張子のファイルを開きたいかを設定する項目です。
  3. 今回は無いですがtitle=""を入れてあげればタイトルを付けることもできます

それ以降は前回と同じなので省略します。

なおボタンを押したら動作するようにしたいので、button=tk.Button(text="開く",command=get)のcommand=getは忘れないようにしてください。

■最後に

これで任意のファイルをクリックだけで選択できるようになりました。

次回はExcelファイルに出力するまでを書きたいと思います。