如何在处理参数时跳过 sys.argv[0]?
How can I skip sys.argv[0] when dealing with arguments?
我写了一个小 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
但是有没有 better/more 忽略 argv[0] 的正确方法?
开始于:
args = sys.argv[1:] # take everything from index 1 onwards
然后忘记sys.argv
,只使用args
。
使用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)))
我写了一个小 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
但是有没有 better/more 忽略 argv[0] 的正确方法?
开始于:
args = sys.argv[1:] # take everything from index 1 onwards
然后忘记sys.argv
,只使用args
。
使用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)))