私は32ビットのWindows 7とPython 2.7を実行しています。Pythonコマンドライン引数(Windows)
CMDから実行できるコマンドラインPythonスクリプトを作成しようとしています。私はsys.argv [1]に値を割り当てようとしています。私のスクリプトの目的は、ファイルのMD5ハッシュ値を計算することです。このファイルは、スクリプトがコマンドラインで呼び出されたときに入力されるため、sys.argv [1]はハッシュするファイルを表す必要があります。
は、ここに以下の私のコードです:
import sys
import hashlib
filename = sys.argv[1]
def md5Checksum(filePath):
fh = open(filePath, 'rb')
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()
# print len(sys.argv)
print 'The MD5 checksum of text.txt is', md5Checksum(filename)
私はこのスクリプトを実行Whenver、私はエラーが表示されます。
filename = sys.argv[1]
IndexError: list index out of range
私のスクリプトを呼び出すには、私は「script.pyのtest.txtを書いています" 例えば。スクリプトとソースファイルの両方が同じディレクトリにあります。私はlen(sys.argv)をテストしました。そして、それはpythonスクリプト名である1つの値を含むものとしてのみ戻ってきます。
提案がありますか?私はそれがどのように私はCMDを介してコードを呼び出すと仮定することができます
ファイルハンドルが開いています。代わりに 'with open(filePath、 'rb')をfh:'として使用してください。 – wim
http://stackoverflow.com/questions/2640971/windows-is-not-passing-command-line-arguments-to-python-programs-executed-from-t#詳細については – laike9m