2014年8月24日日曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の4章(複数のソースファイルの使用: 分割して構築する)、makeマグネット(p.203)をpythonで考えてみる。

makeマグネット(p.203)

コード(BBEdit, Emacs)

error.py

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import sys

def error(msg):
    print(msg, file=sys.stderr)
    sys.exit(1)

oggswing.py

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import sys
import error

if len(sys.argv) != 3:
    error.error('引数を2つ指定してください。')

try:
    with open(sys.argv[1]) as in_fh, open(sys.argv[2], 'w') as out_fh:
        for line in in_fh:
            line = line.rstrip()
            print(line, file=out_fh)
except Exception as err:
    error.error(err)

Makefile

swing.ogg: oggswing.py whitennerdy.ogg
 ./oggswing.py whitennerdy.ogg swing.ogg

入出力結果(Terminal, IPython)

$ make swing.ogg
./oggswing.py whitennerdy.ogg swing.ogg
$ cat whitennerdy.ogg 
Hello, World!
Hello, C!
$ cat swing.ogg 
Hello, World!
Hello, C!
$ ./oggswing.py
引数を2つ指定してください。
$

0 コメント:

コメントを投稿