2023/10/08 (日) done

Python テキスト分析

僕が12年前にアメリカ国務省から入手したAsia Overview[左記文字をクリックすると内容を閲覧できる]という名のWORDファイルがある。これをドットtxtの拡張子を持つファイルにし、メモ帳で開くことにした。単純にメモ帳アプリを選択して開けばいいのだが、どっこい、文字化けが起きたのだ。ネットでそういった情報があるが、解決しない。そこで、一度ファイルを開き、"名前を付けて保存"を選択し、その際にどういった拡張子で保存するかをプルダウンメニューで書式なし.txtをクリックするとエンコードを選ぶダイアログボックスが出て、Windowsの既定のままだと、他のエンコード方式を選択することができない。もちろん、既定を選ばずに右側でUTF-8を選択し保存。再度、そのファイルをメモ帳で開くと、見事に文字化けせずに表示された。これで、これから意図するpython利用での分析が可能となった。
ここでやろうとすることは、そのテキストファイルに含まれる文字数がどのくらいあるのかを調べることである。そのファイルはコードを保存する場所には無い。テキストファイル処理で言及したように、このファイルに辿り着くために指定するパスは絶対パスになる。

#テキストAsian Overviewファイルに含まれる文字の個数調査
#絶対パス指定 
filename = "C:/Users/ユーザー名/フォルダー名/Asia Overview.txt"

try:
    with open(filename, encoding='utf-8') as f:
        #ファイルオブジェクトの内容を読み込む.
        contents = f.read()
        
except FileNotFoundError:
    #ファイルが存在しなかった場合の例外処理.
    print("そのファイルは存在しません。")

else:
    #スプリットメソッド.split()は文字列のスペースから文字列をリスト化.
    words = contents.split()
    #len()関数はリスト要素の個数を表示.
    numbers_words = len(words)
    #f"{filename}にすると上で指定した冗長なファイル名が出力される.ゆえに新たにファイル名を指定.
    new_filename = "Asia Overview"
    print(f"{new_filename}には、約{numbers_words}個の文字が含まれている。")

#実行結果
Asia Overviewには、約5528個の文字が含まれている。

ここで出された個数はリストの要素個数であることに注意しよう。with open(filename, encoding='utf-8') as f:のfは file_objectを表したもので慣習で使う文字とのこと。
▲ トップへ戻る


戻る
カテゴリー