处理参数时如何跳过sys.argv [0]?

时间:2019-04-12 22:07:37

标签: python argv sys

我写了一个小小的Python脚本来检查参数,如果有足够的参数则打印它们,如果没有足够的参数或没有参数则显示警告。但是默认情况下,脚本本身是参数之一,我不想将其包含在代码操作中。

import sys

# print warning if no arguments.
if len(sys.argv) < 2: 
  print("\nYou didn't give arguments!")
  sys.exit(0)

# print warning if not enough arguments.
if len(sys.argv) < 3: 
  print("\nNot enough arguments!")
  sys.exit(0)

print("\nYou gave arguments:", end=" ")
# print arguments without script's name
for i in range(0, len(sys.argv)):
  if sys.argv[i] == sys.argv[0]: # skip sys.argv[0]
    continue
  print(sys.argv[i], end=" ") # print arguments next to each other.

print("")

我已经用以下方法解决了这个问题:

if sys.argv[i] == sys.argv[0]: # skip sys.argv[0]
    continue

但是有没有更好/更合适的方法来忽略argv [0]?

3 个答案:

答案 0 :(得分:4)

开始于:

args = sys.argv[1:]   # take everything from index 1 onwards

然后忘记sys.argv,只使用args

答案 1 :(得分:1)

使用argparse处理命令行参数。

import argparse


p = argparse.ArgumentParser()
p.add_argument("args", nargs='+')
args = p.parse_args()

print("You gave arguments" + ' '.join(args.args))

答案 2 :(得分:0)

您可以从1(range(1,len(sys.argv)))开始