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

2024-12-25 08:50:00
admin
原创
103
摘要:问题描述:如何获得一个可以接受用户输入的 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? "))
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1325  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它涵盖了从产品概念产生到产品退市的整个生命周期,通过整合跨部门团队、优化流程等方式,显著提升产品开发的效率和质量,进而为项目的成功奠定坚实基础。深入探究IPD流程的五个阶段与项目成功之间...
IPD流程分为几个阶段   4  
  华为作为全球知名的科技企业,其成功背后的管理体系备受关注。IPD(集成产品开发)流程作为华为核心的产品开发管理模式,其中的创新管理与实践更是蕴含着丰富的经验和深刻的智慧,对众多企业具有重要的借鉴意义。IPD流程的核心架构IPD流程旨在打破部门墙,实现跨部门的高效协作,将产品开发视为一个整体的流程。它涵盖了从市场需求分析...
华为IPD是什么   3  
  IPD(Integrated Product Development)研发管理体系作为一种先进的产品开发模式,在众多企业的发展历程中发挥了至关重要的作用。它不仅仅是一套流程,更是一种理念,一种能够全方位提升企业竞争力,推动企业持续发展的有效工具。深入探究IPD研发管理体系如何助力企业持续发展,对于众多渴望在市场中立足并...
IPD管理流程   3  
  IPD(Integrated Product Development)流程管理旨在通过整合产品开发流程、团队和资源,实现产品的快速、高质量交付。在这一过程中,有效降低成本是企业提升竞争力的关键。通过优化IPD流程管理中的各个环节,可以在不牺牲产品质量和性能的前提下,实现成本的显著降低,为企业创造更大的价值。优化产品规划...
IPD流程分为几个阶段   4  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用