2014年7月29日火曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の9章(プロセスとシステムサービス: 限界を超える)、コードマグネット(p.422)をpythonで考えてみる。

コードマグネット(p.422)

コード(BBEdit, Emacs)

newshound.py

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

import os
import sys

feeds = ["http://rss.cnn.com/rss/edition.rss",
         "http://rss.cnn.com/rss/edition_world.rss",
         "http://rss.cnn.com/rss/edition_asia.rss",
         "http://rss.cnn.com/rss/edition_us.rss"]
phrase = sys.argv[1]

for feed in feeds:
    env = {'RSS_FEED':feed}
    try:
        os.execle('/usr/bin/python', '/usr/bin/python', 'rssgossip.py', phrase,
                  env)
    except Exception as err:
        print(err, file=sys.stderr)
        sys.exit(1)

newshound1.py

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

import os
import sys

feeds = ["http://rss.cnn.com/rss/edition.rss",
         "http://rss.cnn.com/rss/edition_world.rss",
         "http://rss.cnn.com/rss/edition_asia.rss",
         "http://rss.cnn.com/rss/edition_us.rss"]
phrase = sys.argv[1]

for feed in feeds:
    env = {'RSS_FEED':feed}
    try:
        if os.fork() == 0:
            os.execle('/usr/bin/python', '/usr/bin/python', 'rssgossip.py',
                      phrase, env)
    except Exception as err:
        print(err, file=sys.stderr)
        sys.exit(1)

入出力結果(Terminal, IPython)

$ ./newshound.py Japan > newshound.txt 2> error.log
$ ./newshound1.py Japan > newshound1.txt 2> error1.log
$ cat newshound.txt 
Japanese teen dismembers classmate
Japan's toilet exhibition
China and Japan's 'war of words'
$ cat error.log 
$ cat newshound1.txt 
Japanese movie magic
Japanese teen dismembers classmate
Japan's toilet exhibition
China and Japan's 'war of words'
Japan's robot revolution
Japanese high school girl accused of decapitating classmate
$ cat error1.log 
$ 

0 コメント:

コメントを投稿