schedule2018-07-19

10. 行数のカウント

はじめに

言語処理100本ノック 2015

Pythonを勉強するため、東京工業大学の岡崎教授が出題されている言語処理100本ノック 2015を解いていきます。

より深く理解するため、別解や利用したライブラリの解説もまとめていきます。

環境

Python3.6

OS : mac
2章からUNIXコマンドの問題ですが、macもターミナルから利用できるようです。

問題

hightemp.txtは,日本の最高気温の記録を「都道府県」「地点」「℃」「日」のタブ区切り形式で格納したファイルである.以下の処理を行うプログラムを作成し,hightemp.txtを入力ファイルとして実行せよ.さらに,同様の処理をUNIXコマンドでも実行し,プログラムの実行結果を確認せよ.

10. 行数のカウント
行数をカウントせよ.確認にはwcコマンドを用いよ.

解答:Python

f = open('hightemp.txt', 'r')
print('length', len(f.readlines()))

f.close()

解説

標準関数のopen()を使ってファイルを読み込みます。

行を要素とした配列を得るには、f.readlines()です。

また、必ずファイルはクローズしてください。 ファイルをクローズしないと

  • システムのリソースを食ったまま
  • 他のプログラムがファイルにアクセスできなくなる

などのリスクがあります。 クローズはf.close()です。

解答:UNIXコマンド

$ wc -l hightemp.txt
      24 hightemp.txt

解説

wcコマンドの形式

wc (option) [file name]

続いての記事

Python3で言語処理100本ノックまとめ

前の問題:09. Typoglycemia

次の問題:11. タブをスペースに置換