開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4 (プログラミング言語)
Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の10章(プロセス間通信: お話は楽しい)、エクササイズ(p.447)をpythonで考えてみる。
エクササイズ(p.447)
コード(BBEdit, Emacs)
news_opener.py
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import sys def openUrl(url): if sys.platform == 'win32': os.system('cmd /c start {0}'.format(url)) elif sys.platform == 'linux': os.system("x-www-browser '{0}' &".format(url)) elif sys.platform == 'darwin': os.system("open '{0}' &".format(url)) phrase = sys.argv[1] env = dict(RSS_FEED='http://rss.cnn.com/rss/edition.rss') read_end, write_end = os.pipe() pid = os.fork() if pid == 0: os.close(read_end) os.dup2(write_end, 1) os.execle('/usr/bin/python', '/usr/bin/python', 'rssgossip.py', '-u', phrase, env) os.close(write_end) os.dup2(read_end, 0) for line in sys.stdin: if line[0] == '\t': line = line.strip() print(line) openUrl(line)
入出力結果(Terminal, IPython)
$ ./news_opener.py 'world' http://edition.cnn.com/2014/09/05/world/gallery/this-artist-has-created-the-worlds-most-frustrating-objects/index.html?eref=edition http://edition.cnn.com/2014/09/22/travel/best-nightlife-cities/index.html?eref=edition http://edition.cnn.com/video/data/2.0/video/us/2014/09/23/pkg-man-carries-cross-around-the-world.kait.html?eref=edition http://edition.cnn.com/2014/09/22/business/coolest-brands-list/index.html?eref=edition $
0 コメント:
コメントを投稿