見出し画像

テキストファイルをダイアログボックスを使って読み込む

今日は、『しんせつなPython』の第14章での学びをアウトプットします。

本章では、
①ダウンロードしたテキストファイルを、ダイアログボックスを使って読み込む
②読み込んだファイルについて以下のことを調べる。
-1.全体の文字数
-2.ある特定の文字列が含まれている回数

ということを実現するコードを書いていきます。

Python2.0系を採用していた…

from tkFileDialog import askopenfilename

my_file = askopenfile()
print type(my_file)
print my_file

上記のコードを入力して実行すると、”ModuleNotFoundErrar”というエラーメッセージが出てきました。

このコード、print関数の書き方にも違和感を感じます。

どうやら、Python2.0系の書き方になっているようです。

自分で調べて、Python3.0系での書き方に変更

自分の実行環境は、Python3.0系なので、自分で少し調べてみて、コードを書き換える必要が出てきました。

で、本章を学び終えた頃の全体コードは以下のようになりました。

import tkinter.filedialog

my_file = tkinter.filedialog.askopenfilename()

try:
   with open(my_file, 'r') as f:
       my_words = f.read()
       print('全体の文字数は' + str(len(my_words)) + '文字です')

       tango = input('検索したい単語を入力してください。終了するときはendと入力してください:')

       while True:
           if tango == 'end':
               break
           else:
               print(tango + 'は、' + str(my_words.count(tango)) + '回でてきます。')
               break
               
except IOError as iow:
   print('ファイルを読み込めませんでした')

Python2.0系は2020年にサポートを終了したはずです。
本書の発行日を確認すると、「2016年10月1日」でした。
どうして、Python2.0系で書かれているのだろう…

サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪