Python
Perl

PerlっぽいフィルタプログラムをPythonで書きやすくするモジュールfileinput

More than 3 years have passed since last update.

個人的にPerlに惹かれるところってwhile (<>)を使ってフィルタプログラムを簡単に書けるところだと思うんですよね。

#!/usr/bin/perl

while (<>) {
y/a-z/A-Z/;
print;
}

これで小文字を大文字にするフィルタプログラムが完成。引数で何個でもファイルが指定できるし、無引数なら標準入力から読み込む。

$ echo hoge | ./toupper.pl

HOGE
$ ./toupper.pl hoge.txt hoge2.txt
HOGE
HOGE2
$

fileinputモジュールを使えばPythonでも同じことができます。

#!/usr/bin/python

import fileinput

for line in fileinput.input():
print line.upper(),

ファイル名として「-」を指定すると標準入力の意味になるところまで一緒です。

参照:https://docs.python.org/2/library/fileinput.html