🐕 【メモ】正しいはずのコードが動かないときは、入力データを確かめよう
作成日: 2021/12/06
0

昨日から JupyterLab 上で『言語処理100本ノック』を始めました。
「10. 行数のカウント」の解答を次のように書きました。

filepath = r'C:\nlp100\popular-names.txt'
count = 0
with open(filepath, 'r', encoding='utf-8') as f:
    for line in f:
        count += 1
print(count)

ところがこれが思ったとおりには動きません。返ってきた値は 0 です。JupyterLab のホームディレクトリにコピーした popular-names.txt に対しては正しく 2780 と返ってきます。100本ノック用に作ったディレクトリ(nlp100)に置いたファイルでは動作しません。
「ファイルパスの指定方法がまずいのだろうか?」「JupyterLab の操作を間違ったか?」などとあれこれ1時間以上悩みました。
諦めかけて、ふと nlp100 ディレクトリの中身を見たら、何と popular-names.txt のファイルサイズが 0 になっていました!!! おおもとのファイルからコピーする際に何か不具合が生じたのではないかと思われます。
結局、ファイルを再度上書きコピーして実行すると、正しく 2780 と値を返しました。

正しいコードのはずなのにうまく動作しないときは、入力データが正しいかどうか疑ってみることも必要だということですね。どうもお粗末さまでした。


pythonで自然言語処理プログラムが書けるようになりたいと思っています。Ticketnoteで自分の到達度を確認できれば嬉しいです。