2013年11月19日火曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の8章(ファイル処理)、8.8(練習問題)、4.を解いてみる。

8.8(練習問題)、4.

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8
import sys
import re

def skip_header(r):
    line = r.readline()
    line = r.readline()
    while line.startswith('#'):
        line = r.readline()
    return line

def read_smallest_skip(r):
    line = skip_header(r).strip()
    if not line:
        return 0
    while not re.match(r'^\d+$', line):
        line = r.readline()
        line = line.strip()
        if not line:
            return 0
    smallest = int(line)
    for line in r:
        line = line.strip()
        if re.match(r'\d+$', line):
            value = int(line)
            if value < smallest:
                smallest = value
    return smallest

if __name__ == '__main__':
    with open(sys.argv[1], 'r') as f:
        print(read_smallest_skip(f))

入出力結果(Terminal)

$ cat hopedale.txt
Coloured fox fur production, HOPEDALE, Labrador, 1834-1842
#Source: C. Elton (1942) "Voles, Mice and lemmings", Oxford Univ. Press
#Table 17, p.265--266
        -
       22
        -
       29
        -
        -
        2
       16
       12
       35
        8
       83
      166
        -
$ ./sample.py hopedale.txt
2
$

0 コメント:

コメントを投稿