2014年8月19日火曜日

開発環境

初めてのPerl 第6版 (Randal L. Schwartz (著)、brian d foy (著)、Tom Phoenix (著)、近藤 嘉雪 (翻訳)、オライリージャパン)の16章(プロセス管理)の16.9(練習問題)2.をPythonで考えてみる。

16.9(練習問題)2.

コード(BBEdit, Emacs)

sample2.py

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

import os
import sys

try:
    f_out = open('ls.out', 'w')
    f_err = open('ls.err', 'w')
    os.chdir(sys.argv[1])
    print(os.popen('ls -l').read(), end='', file=f_out)
except Exception as err:
    print(err, file=f_err)
finally:
    f_out.close()
    f_err.close()

入出力結果(Terminal, IPython)

$ ./sample2.py /
$ cat ls.out 
total 16437
drwxrwxr-x+ 61 root  admin     2074 Aug 13 09:16 Applications
drwxr-xr-x+ 66 root  wheel     2244 May 13 19:51 Library
drwxr-xr-x@  2 root  wheel       68 Aug 25  2013 Network
drwxr-xr-x+  4 root  wheel      136 Apr 22 02:37 System
drwxr-xr-x   6 root  admin      204 Apr 26 05:24 Users
drwxrwxrwt@  6 root  admin      204 Aug 19 16:19 Volumes
drwxr-xr-x@ 39 root  wheel     1326 Jul  1 08:51 bin
drwxrwxr-t@  2 root  admin       68 Aug 25  2013 cores
dr-xr-xr-x   3 root  wheel     4447 Aug 11 03:25 dev
lrwxr-xr-x@  1 root  wheel       11 Apr 22 02:18 etc -> private/etc
dr-xr-xr-x   2 root  wheel        1 Aug 11 03:25 home
-rwxr-xr-x@  1 root  wheel  8394000 Jun  4 13:27 mach_kernel
dr-xr-xr-x   2 root  wheel        1 Aug 11 03:25 net
drwxr-xr-x   5 root  wheel      170 Jul 25 13:33 opt
drwxr-xr-x@  6 root  wheel      204 Apr 22 02:49 private
drwxr-xr-x@ 62 root  wheel     2108 Jul  1 08:51 sbin
lrwxr-xr-x@  1 root  wheel       11 Apr 22 02:19 tmp -> private/tmp
drwxr-xr-x@ 10 root  wheel      340 May 27 09:14 usr
lrwxr-xr-x@  1 root  wheel       11 Apr 22 02:19 var -> private/var
$ cat ls.err 
$ rm ls.*
remove ls.err? y
remove ls.out? y
$ ./sample2.py abcde
$ cat ls.out 
$ cat ls.err 
[Errno 2] No such file or directory: 'abcde'
$

0 コメント:

コメントを投稿