Windows上带参数的Python程序
如何在安装了python 2.7的Windows XP上运行保存在文件test.py中的此程序Windows上带参数的Python程序,python,argparse,Python,Argparse,如何在安装了python 2.7的Windows XP上运行保存在文件test.py中的此程序 import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator') parser.add_
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',const=sum, default=max,help='sum the integers (default: find the max)')
args = parser.parse_args()
print args.accumulate(args.integers)
我试着用命令行运行它。比如说
$ python test.py 1 2 3 4
或
给出错误“无效语法”。这只是我太天真了,但考虑到您发布的简短错误消息 你有没有可能从某本书上得到这段代码,并尝试在命令行上运行它 本书使用
$
标记命令行/终端命令,但字符实际上不是您应该使用的语法或命令的一部分
因此,与其运行这个:
$ python 1 2 3
运行以下命令:
python 1 2 3
这只是我的天真,但考虑到你发布的短错误消息 你有没有可能从某本书上得到这段代码,并尝试在命令行上运行它 本书使用
$
标记命令行/终端命令,但字符实际上不是您应该使用的语法或命令的一部分
因此,与其运行这个:
$ python 1 2 3
运行以下命令:
python 1 2 3
我尝试在命令行中运行您的脚本,效果非常好:
$ python arg.py 1 2 3 4 --sum
10
在上面的示例中,$
是shell的提示符。我输入的是python arg.py1 2 3 4--sum
。它起作用了
现在,让我们做我怀疑您正在做的事情:让我们启动一个交互式python shell并输入上面的内容:
$ python
Python 2.7.12+ (default, Aug 4 2016, 20:04:34)
[GCC 6.1.1 20160724] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> python test.py 1 2 3 4 --sum
File "<stdin>", line 1
python test.py 1 2 3 4 --sum
^
SyntaxError: invalid syntax
$python
Python 2.7.12+(默认,2016年8月4日,20:04:34)
[GCC 6.1.1 20160724]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>python test.py1 2 3 4——总和
文件“”,第1行
python test.py1 2 3 4——总和
^
SyntaxError:无效语法
这将生成您看到的SyntaxError:invalid syntax
错误。(有一个小区别:我在Linux上,你在Windows上。)
解决方案是退出python交互式shell,并在命令提示符下输入命令。我尝试在命令行中运行您的脚本,效果非常好:
$ python arg.py 1 2 3 4 --sum
10
在上面的示例中,$
是shell的提示符。我输入的是python arg.py1 2 3 4--sum
。它起作用了
现在,让我们做我怀疑您正在做的事情:让我们启动一个交互式python shell并输入上面的内容:
$ python
Python 2.7.12+ (default, Aug 4 2016, 20:04:34)
[GCC 6.1.1 20160724] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> python test.py 1 2 3 4 --sum
File "<stdin>", line 1
python test.py 1 2 3 4 --sum
^
SyntaxError: invalid syntax
$python
Python 2.7.12+(默认,2016年8月4日,20:04:34)
[GCC 6.1.1 20160724]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>python test.py1 2 3 4——总和
文件“”,第1行
python test.py1 2 3 4——总和
^
SyntaxError:无效语法
这将生成您看到的SyntaxError:invalid syntax
错误。(有一个小区别:我在Linux上,你在Windows上。)
解决方案是退出python交互式shell并在命令提示符下输入命令。您的
test
脚本是python argparse文档中的第一个示例
添加了新行的评论已被删除
Python 2.7.8 (default, Jun 30 2014, 16:03:49)
[MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> usage: test [-h] [--sum] N [N ...] test: error: too few arguments
>>> $ python test.py 1 2 3 4
SyntaxError: invalid syntax
>>> python test.py 1 2 3 4
SyntaxError: invalid syntax
>>> $ python test.py 1 2 3 4
SyntaxError: invalid syntax
>>> python test.py 1 2 3 4 --sum
SyntaxError: invalid syntax
>>> python test.py 1 2 3 4 --sum
由此我推断,您将脚本保存为test
('test.py`会更好),并从Windows命令行运行它,如下所示:
python -i test
产生
usage: test [-h] [--sum] N [N ...] test: error: too few arguments
来自解析器的用法消息<代码>测试
是脚本的名称
我不确定重新启动
行。我的测试(最后)表明,您的Python调用(或某些默认环境功能)包括-i
选项,即使在argparse
步骤失败后,它仍让您处于交互式Python会话中
下一个命令直接来自Python示例:
>>> $ python test.py 1 2 3 4
SyntaxError: invalid syntax
但背景是完全错误的。文档包括$
,以指示这是在命令行(Linux shell或Windows commmand)中键入的。在正确的上下文中,其含义是:
- 运行Python
- 告诉它运行test.py脚本
- 并将参数“1”、“2”等传递给它
>
提示字符串指示),这就没有意义了python
和test.py
是python中没有默认含义的字符串。所以解释器会给你一个语法错误。没有一种变体能解决这个问题
再往前看,argparse
文档给出了从Python交互式会话中调用解析器的示例:
>>> parser.parse_args(['--sum', '7', '-1', '42'])
这有一个非常不同的语法。在这个python-i
上下文中,它应该运行
返回Windows命令窗口并键入
python test 1 2 3 4
有更好的工作机会。如果这不起作用,那么您/我们需要专注于运行更基本的Python脚本
=========
下面是一个从Linux shell运行另一个简单脚本的示例。…$
是shell提示符;>
是python提示符。将-i
添加到初始python调用中可确保解析后它仍保留在python中
0957:~/mypy$ python -i simple.py
usage: simple.py [-h] foo
simple.py: error: too few arguments
Traceback (most recent call last):
File "simple.py", line 4, in <module>
print(parser.parse_args())
...
SystemExit: 2
>>> python simple.py 1 2
File "<stdin>", line 1
python simple.py 1 2
^
SyntaxError: invalid syntax
您的test
脚本是Python argparse文档中的第一个示例
添加了新行的评论已被删除
Python 2.7.8 (default, Jun 30 2014, 16:03:49)
[MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> usage: test [-h] [--sum] N [N ...] test: error: too few arguments
>>> $ python test.py 1 2 3 4
SyntaxError: invalid syntax
>>> python test.py 1 2 3 4
SyntaxError: invalid syntax
>>> $ python test.py 1 2 3 4
SyntaxError: invalid syntax
>>> python test.py 1 2 3 4 --sum
SyntaxError: invalid syntax
>>> python test.py 1 2 3 4 --sum
由此我推断,您将脚本保存为test
('test.py`会更好),并从Windows命令行运行它,如下所示:
python -i test
产生
usage: test [-h] [--sum] N [N ...] test: error: too few arguments
来自解析器的用法消息<代码>测试
是脚本的名称
我不确定重新启动
行。我的测试(最后)表明,您的Python调用(或某些默认环境功能)包括-i
选项,即使在argparse
步骤失败后,它仍让您处于交互式Python会话中
下一个命令直接来自Python示例:
>>> $ python test.py 1 2 3 4
SyntaxError: invalid syntax
但背景是完全错误的。文档包括$
,以指示这是在命令行(Linux shell或Windows commmand)中键入的。在正确的上下文中,其含义是:
- 运行Python
- 让它运行