简体   繁体   English

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

[英]How can I skip sys.argv[0] when dealing with arguments?

I have written a little Python script that checks for arguments and prints them if enough arguments or warnings if not enough or no arguments.我写了一个小 Python 脚本来检查 arguments 并在 arguments 足够时打印它们,如果不够或没有 ZDBC16FB4CAA5BDA88EDFDA77 则发出警告。 But by default, the script itself is one of the arguments and I do not want to include it in my code actions.但默认情况下,脚本本身是 arguments 之一,我不想将它包含在我的代码操作中。

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("")

I have solved this with:我已经解决了这个问题:

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

But is there a better/more proper way to ignore the argv[0]?但是有没有更好/更合适的方法来忽略 argv[0]?

Start with: 从...开始:

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

Then forget about sys.argv and only use args . 然后忘记sys.argv ,只使用args

Use argparse to process the command-line arguments. 使用argparse处理命令行参数。

import argparse


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

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM