print"you entered", var
或者对于python 3:
"/>

关于python:用户输入和命令行参数

关于python:用户输入和命令行参数

User input and command line arguments

如何使用a)可以接受用户输入的python脚本,以及如何使其成为b)如果从命令行运行,如何读取参数?


1
2
var = raw_input("Please enter something:")
print"you entered", var

或者对于python 3:

1
2
var = input("Please enter something:")
print("You entered:" + var)

要读取用户输入,您可以尝试使用cmd模块轻松创建一个小型命令行解释器(使用帮助文本和自动完成),使用raw_input(针对python 3+的input)读取用户的一行文本。

1
2
text = raw_input("prompt")  # Python 2
text = input("prompt")  # Python 3

命令行输入在sys.argv中。在脚本中尝试此操作:

1
2
import sys
print (sys.argv)

有两个用于分析命令行选项的模块:optparses>(自python 2.7以来已弃用,改用argparse)和getopt。如果您只想将文件输入到您的脚本中,请看一下fileinput的强大功能。

python库引用是您的朋友。


在python 3.x中,raw_input不再可用。但是raw_input被重命名为input,因此存在相同的功能。

1
2
input_var = input("Enter something:")
print ("you entered" + input_var)

变更文件


处理命令行参数的最佳方法是argparse模块。

使用raw_input()获取用户输入。如果您导入readline module,您的用户将具有行编辑和历史记录。


小心不要使用input功能,除非你知道你在做什么。与raw_input不同,input将接受任何python表达式,因此它有点像eval


这个简单的程序可以帮助您理解如何从命令行输入用户信息,以及如何显示传递无效参数的帮助信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import argparse
import sys

try:
     parser = argparse.ArgumentParser()
     parser.add_argument("square", help="display a square of a given number",
                type=int)
    args = parser.parse_args()

    #print the square of user input from cmd line.
    print args.square**2

    #print all the sys argument passed from cmd line including the program name.
    print sys.argv

    #print the second argument passed from cmd line; Note it starts from ZERO
    print sys.argv[1]
except:
    e = sys.exc_info()[0]
    print e

1)求5的平方根

1
2
3
4
C:\Users\Desktop>python -i emp.py 5
25
['emp.py', '5']
5

2)传递除数字以外的无效参数

1
2
3
4
C:\Users\bgh37516\Desktop>python -i emp.py five
usage: emp.py [-h] square
emp.py: error: argument square: invalid int value: 'five'
<type 'exceptions.SystemExit'>


使用"原始输入"从控制台/终端输入。

如果您只需要一个命令行参数,比如文件名或其他。

1
$ python my_prog.py file_name.txt

然后你可以使用sys.argv…

1
2
import sys
print sys.argv

sys.argv是一个列表,其中0是程序名,因此在上面的示例中,sys.argv[1]将是"file_name.txt"

如果要使用完整的命令行选项,请使用optparse模块。

聚戊酸乙烯酯


如果运行的是python<2.7,则需要optparse,正如文档所解释的那样,它将创建一个到命令行参数的接口,这些参数在应用程序运行时被调用。

但是,在python≥2.7中,optparse已被弃用,并被argparse替换,如上图所示。文档中的一个快速示例…

The following code is a Python program that takes a list of integers
and produces either the sum or the max:

1
2
3
4
5
6
7
8
9
10
11
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)

如果是3.x版本,只需使用:

1
variantname = input()

例如,要输入8:

1
2
x = input()
8

x等于8,但它将是一个字符串,除非您另有定义。

因此,可以使用convert命令,例如:

1
2
3
a = int(x) * 1.1343
print(round(a, 2)) # '9.07'
9.07

从python开始,现在有argparse用于处理命令行参数。


在Python 2中:

1
2
data = raw_input('Enter something: ')
print data

在Python 3中:

1
2
data = input('Enter something: ')
print(data)


1
2
3
4
5
6
import six

if six.PY2:
    input = raw_input

print(input("What's your name?"))


推荐阅读

    linux命令行大全如何?

    linux命令行大全如何?,地址,命令,基础,工作,管理,单位,数据,标准,目录,文件,l

    linux命令行打开浏览?

    linux命令行打开浏览?,系统,网络,网址,工具,密码,首页,服务,网站,数据,地址,l

    linux关闭串口命令行?

    linux关闭串口命令行?,代码,数据,网络,软件,通信,系统,基础,平台,信息,技术,

    linux开启命令行命令?

    linux开启命令行命令?,系统,单位,工具,电脑,首页,终端,情况,密码,权威,命令,l

    linux命令所有用户?

    linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如

    linux命令进入用户?

    linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,

    linux命令行模式登录?

    linux命令行模式登录?,系统,密码,信息,状态,情况,终端,环境,管理,电脑,位置,l

    linux链接网络命令行?

    linux链接网络命令行?,地址,系统,网络,工作,软件,工具,信息,密码,服务,标准,l

    linux命令行替换所有?

    linux命令行替换所有?,名字,名称,软件,数据,资料,行长,命令,文件,字符串,批

    linux退出的命令行?

    linux退出的命令行?,档案,状态,平台,系统,命令,名字,信息,编辑,模式,文件,lin

    linux命令用户管理?

    linux命令用户管理?,系统,密码,管理,工作,信息,地址,工具,命令,用户,基础,LIn

    linux用户与组的命令?

    linux用户与组的命令?,管理,系统,名称,用户组,密码,用户,命令,情况,信息,单

    linux输入命令星号?

    linux输入命令星号?,密码,网络,系统,通讯,概念,情况,数据,术语,网关,表示,如

    脚本linux上运行命令?

    脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,t

    linux命令行播放声音?

    linux命令行播放声音?,系统,设备,手机,电脑,软件,量化,数据,管理,首页,服务,l

    获取linux时间命令行?

    获取linux时间命令行?,时间,系统,信息,命令,工具,工作,代码,数据,服务,环境,L

    linux命令行切换规则?

    linux命令行切换规则?,密码,系统,软件,工具,工作,名称,目录,命令,界面,图形

    linux添加用户的命令?

    linux添加用户的命令?,密码,系统,软件,联系方式,用户,新增,信息,管理人员,

    linuxc关机命令行?

    linuxc关机命令行?,系统,状态,工作,命令,管理,用户,方式,终端,级别,参数,linu