sys.argvでユーザーIDなど細かいコマンドを渡せる理由がわかりません。
# coding: Shift_JIS import sys # モジュール属性 argv を取得するため argvs = sys.argv # コマンドライン引数を格納したリストの取得 argc = len(argvs) # 引数の個数 # デバッグプリント print argvs print argc print if (argc != 2): # 引数が足りない場合は、その旨を表示 print 'Usage: # python %s filename' % argvs[0] quit() # プログラムの終了 print 'The content of %s ...n' % argvs[1] f = open(argvs[1]) line = f.readline() # 1行読み込む(改行文字も含まれる) while line: print line line = f.readline() f.close
とコードを書くと、
$ python argv01.py text.txt
のようにpythonファイルだけでなく、fileopenしたいファイル(ここではtext.txt
)もコマンドに渡せ実行できることがわかります。
しかし、どうしてこの一行で
argvs = sys.argv
上記のようなpythonファイルだけでなく、fileopenしたいファイル(ここではtext.txt)もコマンドに渡せ実行できるようになるのかがわかりません。sysメソッドが標準入力を受け取れるものであることはわかりますが、それがターミナルとどのように関連しているのかがわかりません。また
argvs = sys.argv
でリストで情報を保持している点もわからなくて、どうしてリスト型で受け取ったものをコマンドで使えるのでしょうか?(リストではなく文字列なら理解できます。コマンドで何か打つとき、リスト型ではなく文字列で打つので)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。