运行"./script"导入语句后出现语法错误,但"python脚本"工作正常

nzo*_*xia 0 python python-2.7

我正在使用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  
Run Code Online (Sandbox Code Playgroud)

如果我在bash中运行代码如:python age1.py xxxx,程序
运行正常,但如果我像./age1.py xxxx一样运行,鼠标将变为"+"之类的符号,然后程序最终得到:

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

系统:Ubuntu 10.10
Python 2.7.3有
什么原因吗?

nin*_*cko 6

您没有#!/usr/bin/python在文件的开头添加.

你的shell(bash)试图解释python文件,好像它是用bash脚本编写的,并且失败了.就像给一个3岁的英语儿童一本法语书,而孩子认为这些单词是英语.