0

私はPythonでsys.argvを使って何かをしています。コードは次のとおりです。

age1.py

import datetime
import os
import sys

if len(sys.argv) == 2:
    now_time = datetime.datetime.now()
    future_time = now_time + datetime.timedelta(int(sys.argv[1]))
    print "date in", sys.argv[1],"days",future_time

elif len(sys.argv) == 4:
    print "three paras"
    spe_time = datetime.datetime(int(sys.argv[1]),int(sys.argv[2]),int(sys.argv[3]))
    now_time = datetime.datetime.now()
    diff_time = now_time - spe_time
    print "days since then..." , diff_time  

python age1.py xxxxのようにbashでコードを実行すると、プログラムは正常
に動作しますが、。/ age1.py xxxxのように実行すると、マウスは「+」のような記号になり、プログラムは次のようになります。

"./age1.py: line 5: syntax error near unexpected token `sys.argv'  
./age1.py: line 5: `if len(sys.argv) == 2:'

システム:Ubuntu 10.10
Python 2.7.3
その理由は何ですか?

4

1 に答える 1

6

#!/usr/bin/pythonファイルの先頭にを追加しませんでした。

シェル(bash)は、Pythonファイルをbashスクリプトで記述されているかのように解釈しようとして、失敗します。3歳の英語を話す子供にフランス語の本を渡すのと同じように、単語を考えている子供は英語です。

于 2012-09-02T09:32:41.717 に答える