用户输入和命令行参数[关闭]

2024-12-25 08:50:00
admin
原创
71
摘要:问题描述:如何获得一个可以接受用户输入的 Python 脚本,以及如何让它在从命令行运行时读取参数?解决方案 1:要读取用户输入,您可以尝试使用该cmd模块轻松创建一个迷你命令行解释器(带有帮助文本和自动完成功能)和raw_input(input对于 Python 3+)用于从用户那里读取一行文本。text ...

问题描述:

如何获得一个可以接受用户输入的 Python 脚本,以及如何让它在从命令行运行时读取参数?


解决方案 1:

要读取用户输入,您可以尝试使用该cmd模块轻松创建一个迷你命令行解释器(带有帮助文本和自动完成功能)和raw_inputinput对于 Python 3+)用于从用户那里读取一行文本。

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

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

import sys
print (sys.argv)

有两个用于解析命令行选项的模块:(optparse自 Python 2.7 起已弃用,改用argparse)和getopt。如果您只想将文件输入到脚本中,那么就来看看 的强大功能吧fileinput

Python库参考是你的朋友。

解决方案 2:

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

或者对于 Python 3:

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

解决方案 3:

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

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

变更记录

解决方案 4:

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

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

解决方案 5:

这个简单的程序可以帮助您了解如何从命令行向用户提供输入并在传递无效参数时显示帮助。

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的平方根

C:UsersDesktop>python -i emp.py 5
25
['emp.py', '5']
5

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

C:Usersgh37516Desktop>python -i emp.py five
usage: emp.py [-h] square
emp.py: error: argument square: invalid int value: 'five'
<type 'exceptions.SystemExit'>

解决方案 6:

小心不要使用该input函数,除非你知道自己在做什么。与 不同raw_inputinput它将接受任何 Python 表达式,因此它有点像eval

解决方案 7:

使用“raw_input”从控制台/终端输入。

如果你只是想要一个命令行参数,比如文件名或者其他东西,例如

$ python my_prog.py file_name.txt

然后您可以使用 sys.argv...

import sys
print sys.argv

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

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

佩夫

解决方案 8:

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

然而,在 Python ≥2.7 中,optparse 已被弃用,并被替换为 argparse ,如上所示。来自文档的一个简单示例...

以下代码是一个 Python 程序,它接受整数列表并得出总和或最大值:

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)

解决方案 9:

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

解决方案 10:

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

variantname = input()

例如你想输入8:

x = input()
8

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

因此您可以使用转换命令,例如:

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

解决方案 11:

在 Python 2 中:

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

在 Python 3 中:

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

解决方案 12:

import six

if six.PY2:
    input = raw_input

print(input("What's your name? "))
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1124  
  IPD(Integrated Product Development,集成产品开发)流程是一种广泛应用于高科技和制造业的产品开发方法论。它通过跨职能团队的紧密协作,将产品开发周期缩短,同时提高产品质量和市场成功率。在IPD流程中,CDCP(Concept Decision Checkpoint,概念决策检查点)是一个关...
IPD培训课程   79  
  研发IPD(集成产品开发)流程作为一种系统化的产品开发方法,已经在许多行业中得到广泛应用。它不仅能够提升产品开发的效率和质量,还能够通过优化流程和资源分配,显著提高客户满意度。客户满意度是企业长期成功的关键因素之一,而IPD流程通过其独特的结构和机制,能够确保产品从概念到市场交付的每个环节都围绕客户需求展开。本文将深入...
IPD流程   70  
  IPD(Integrated Product Development,集成产品开发)流程是一种以跨职能团队协作为核心的产品开发方法,旨在通过优化资源分配、提高沟通效率以及减少返工,从而缩短项目周期并提升产品质量。随着企业对产品上市速度的要求越来越高,IPD流程的应用价值愈发凸显。通过整合产品开发过程中的各个环节,IPD...
IPD项目管理咨询   82  
  跨部门沟通是企业运营中不可或缺的一环,尤其在复杂的产品开发过程中,不同部门之间的协作效率直接影响项目的成败。集成产品开发(IPD)作为一种系统化的项目管理方法,旨在通过优化流程和增强团队协作来提升产品开发的效率和质量。然而,跨部门沟通的复杂性往往成为IPD实施中的一大挑战。部门之间的目标差异、信息不对称以及沟通渠道不畅...
IPD是什么意思   74  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用