在python中传递的命令行参数

ben*_*nst 0 python command-line arguments python-3.x

您好我是Python新手,目前已复制以下脚本:

# filename is printer.py
import sys
for arg in sys.argv:
    print arg    # the zeroth element is the module name
raw_input("press any key")    # a trick to keep the python console open
Run Code Online (Sandbox Code Playgroud)

我试图获取模块名称后跟的参数.但运行此代码会出现以下错误:

U:\printer.py
    File "U:\printer.py", line 6
      print arg # zeroth element is the module name
              ^
SyntaxError: Invalid syntax
Run Code Online (Sandbox Code Playgroud)

有谁知道这里有什么不对吗?我使用的是Python 3.2

小智 5

在Python 3中print是一个函数:

print(arg)
Run Code Online (Sandbox Code Playgroud)


mgi*_*son 5

正如其他人所说,在python3中,print是一个函数:

print arg
Run Code Online (Sandbox Code Playgroud)

就是现在:

print(arg)
Run Code Online (Sandbox Code Playgroud)

此外,raw_input已经不见了,简单地取而代之input.(在py2k中,inputeval来自命令行的字符串,但它不会在py3k中执行此操作).


最后(也许是最重要的),你考虑过argparse吗?(未经测试的代码如下)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('foo',nargs='*',help="What a nice day we're having")
args = parser.parse_args()
print(args.foo)
Run Code Online (Sandbox Code Playgroud)