[英]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.