以下のような python スクリプトを書いてすこしはまりました。
#! /usr/bin/env python
# test.py
import sys
with open(sys.argv[0], "r") as f:
for line in f:
print line
f.close()
これを、例えば下記のように実行するとソースファイルが二重に改行されて表示されます。
./test.py
# もしくは
python test.py
上のスクリプトは何をやっているかというと、ソースコード ( sys.argv[0] で指定されたスクリプト自身 ) を出力しているだけの話。コマンドライン引数は sys.argv[1] 以降に格納されています。
ある程度書いてからデバッグを行うと、エラーもなしにスクリプト自身が表示されて、頭を抱えることになります。
コマンドライン引数の取り扱いは注意しましょう、という話でした。