将sys.arvg与列表进行比较[关闭] - python

Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
因此,我想做的是将终端参数与代码中的列表进行比较。

因此,例如,我将在命令中输入“ python ./mycode.py -name”。

因此,我想将参数-name与代码中的列表进行比较。

目前看起来像这样:

reqArgs = ["-name", "-age", "-date"]

for arg in sys.argv:
  for req in arg:
    if req in reqArgs:
      print "Sucess"
    else:
      print "not working"

我知道我离那并不遥远。我在这里想念什么?

python大神给出的解决方案

我在这里想念什么?

您缺少argparse。用argparse解析参数,您会得到自动帮助消息,缺少必需参数时的合理错误消息,一致的用户界面。

考虑此程序以及三个必需的参数:

#!/usr/bin/env python

import argparse
import dateutil.parser
parser = argparse.ArgumentParser(description='The Constant Frobulator')
parser.add_argument('-name', required=True,
                    help='The name of frobulator')
parser.add_argument('-age', required=True,
                    type=int,
                    help='The age of frobulator')
parser.add_argument('-date', required=True,
                    type=dateutil.parser.parse,
                    help='The precise date frobulation began')
args = parser.parse_args()
print(args)

argparse提供的程序功能演示:

$ ./myprog
usage: myprog [-h] -name NAME -age AGE -date DATE
myprog: error: argument -name is required
$ ./myprog -h
usage: myprog [-h] -name NAME -age AGE -date DATE

The Constant Frobulator

optional arguments:
  -h, --help  show this help message and exit
  -name NAME  The name of frobulator
  -age AGE    The age of frobulator
  -date DATE  The precise date frobulation began
$ ./myprog -name George -age 47 -date "Mar 5, 2016"
Namespace(age=47, date=datetime.datetime(2016, 3, 5, 0, 0), name='George')
$ ./myprog -name George -age 47.5 -date "Mar 5, 2016"
usage: myprog [-h] -name NAME -age AGE -date DATE
myprog: error: argument -age: invalid int value: '47.5'
$ ./myprog -name George -date "Mar 5, 2016"
usage: myprog [-h] -name NAME -age AGE -date DATE
myprog: error: argument -age is required

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

如何打印浮点数的全精度[Python] - python

我编写了以下函数,其中传递了x,y的值:def check(x, y): print(type(x)) print(type(y)) print(x) print(y) if x == y: print "Yes" 现在当我打电话check(1.00000000000000001, 1.0000000000000002)它正在打印:<…

Python:检查新文件是否在文件夹中[重复] - python

This question already has answers here: How do I watch a file for changes? (23个答案) 3年前关闭。 我是python的新手,但是我尝试创建一个自动化过程,其中我的代码将侦听目录中的新文件条目。例如,某人可以手动将zip文件复制到一个特定的文件夹中,并且我希望我的代码能够在文件完全…