エラーではないけれど python

以下のような 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] 以降に格納されています。
ある程度書いてからデバッグを行うと、エラーもなしにスクリプト自身が表示されて、頭を抱えることになります。
コマンドライン引数の取り扱いは注意しましょう、という話でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

plese input * Time limit is exhausted. Please reload CAPTCHA.