1

私は現在Learning Python the Hard Wayに取り組んでいますが、おそらく私にとっては少し速く進んでいます。次のコードと、対応するファイルを入力しました。py ファイルに、次のように書きました。

#!/usr/bin/python

from sys import argv

script, filename = argv

txt = open(filename)

print "Here's your file %r:" % filename
print txt.read()

print "Type the filename again:"
file_again = raw_input("> ")

txt_again = open(file_again)

print txt_again.read()

そしてそれを実行するために、私は次のように書きました:python script.py readme.txtコードを実行しました。

ただし、ここでのプロセスはよくわかりません。

  • なぜ#!/usr/bin/pythonファイルの先頭にある必要がありますか
  • とはsys import argv
  • とはscript, filename = argv
  • .read()組み込み関数ですか?
4

4 に答える 4

2

#!/usr/bin/pythonは、Python スクリプトを実行可能ファイルに変換します。これは、Unix の特別なトリックです。実行可能なスクリプトは通常、文字 #! で始まる行で始まります。(「hash bang」) の後に、マシン上の Python インタープリターへのパスが続きます。次に、その特定のスクリプト ファイルのモードを +x に変更すると、名前を呼び出すだけでプロンプトで実行できるようになります。このパスはマシンによって異なる場合があるため、UNIX の "env" 回避策を使用できます: #!/usr/bin/env python これにより、env プログラムが python インタープリターを見つけてコードを実行できるようになります。

From modulename import 何かを使用してモジュールをインポートしますが、モジュール sys から "argv" 属性のみをインポートしています。From は import に似ていますが、この場合はモジュールの属性 (argv) をコピーして、受信者スクリプトの単純な変数になるように、もう少し作業を行います。

script, filename = argv は単に argv[0] と argv[1] をそれぞれスクリプトとファイル名に割り当てます。

最後に、file.read はファイル オブジェクトの組み込みメソッドです。

于 2013-08-04T21:54:50.057 に答える