或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

Windows7で、PerlとPythonでスクリプト書いたらPythonのほうが楽だった。

Perlスクリプトを叩く

環境

やったこと

  • 環境変数にperlの実行ファイルのパスを通した
  • GUI操作で、.pl拡張子を関連付けた。
  • スクリプトを書いた。

内容は関係無いけど、Linuxのcatコマンド相当を実装したかったんだよね。

@files = map { glob( $_ ) } @ARGV;
for(@files){
	open(IN, "< ", $_);
	read (IN, $buf, (-s  $_));
	print $buf,"\n";
	close IN;
}

一応、スクリプトの置いてあるディレクトリで、perlコマンドの引数にスクリプトを指定すると上手く行く。

C:\bin>perl cat.pl test.txt test2.txt
aaa
bbb
ccc
ddd
fff
ggg

でも、スクリプト名で実行するとダメ

C:\bin>cat.pl test.txt test2.txt

ダメだったこと

以上のようにやっても、引数が上手く取得出来ないということがわかった。

対応策

でも、ちょっと面倒だし、レジストリいじりたくない。もっと手軽に安全にやりたいよねぇ・・・。

Pythonスクリプトを叩く

環境

やったこと

  • スクリプトを書いた。

内容は関係無いけど、Linuxのcatコマンド相当を実装したかったんだよね。

import sys

if len(sys.argv) >1 :
        for a in sys.argv[1:len(sys.argv)]:
                f = open(a,'r')
                print f.read()
                f.close()
else:
        print "Arg Error"

実行結果

C:\bin>cat.py test.txt test2.txt
aaa
bbb
ccc
ddd
fff
ggg

上手く出来た。

C:\>cat.py bin\test.txt bin\test2.txt
aaa
bbb
ccc
ddd
fff
ggg

パス変わっても上手く行っている。

Pythonでスクリプト書くのもなかなか悪くないねといったところ。

参考書籍

初めてのPython 第3版

初めてのPython 第3版


Python クックブック 第2版

Python クックブック 第2版

  • 作者: Alex Martelli,Anna Martelli Ravenscroft,David Ascher,鴨澤眞夫,當山仁健,吉田聡,吉宗貞紀
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2007/06/26
  • メディア: 大型本
  • 購入: 11人 クリック: 423回
  • この商品を含むブログ (85件) を見る

Python ポケットリファレンス (Pocket Reference)

Python ポケットリファレンス (Pocket Reference)