Python,sys模块的参数参数错误



我正试图用sys模块在python中获取参数。这是我的代码:

import sys
import os
path = sys.argv[0]
argument = sys.argv[1]
print("Hello, Temal Script installed.")
if argument == "-h":
os.system("cls")
print("Available comamnds:n-h = helpn-i = informationn-v = version")
if argument == "-i":
os.system("cls")
print("This is a script written by Temal")
if argument == "-v":
os.system("cls")
print("Version: 1.0")

如果我在cmd";main.py-h";它非常有效。但如果我只输入";main.py";它打印出一个错误:

Traceback (most recent call last):
File "C:Windowscmd.py", line 5, in <module>
argument = sys.argv[1]
IndexError: list index out of range

我知道为什么会出现这个错误,因为列表中只有一个项目(路径(,因为我没有输入第二个参数。但是,如果没有设置第二个参数,我怎么能让脚本忽略这个错误呢?如果有人在没有参数的情况下输入main.py,我只想打印出以下文本:Hello,Temal Script installed或者可能在PHP中有类似的东西";isset"?我也是这个话题的新手,所以请回答简单而不复杂的问题。谢谢

需要检查sys.argv变量的长度。

import sys
import os
path = sys.argv[0]
if len(sys.argv) > 1:
argument = sys.argv[1]
print("Hello, Temal Script installed.")
if argument == "-h":
os.system("cls")
print("Available comamnds:n-h = helpn-i = informationn-v = version")
elif argument == "-i":
os.system("cls")
print("This is a script written by Temal")
elif argument == "-v":
os.system("cls")
print("Version: 1.0")

另外,请查看argparse模块。

import argparse
import os
parser = argparse.ArgumentParser(description="My App")
parser.add_argument('-i', '--info', action='store_true',
help="show information")
parser.add_argument('-v', '--version', action='store_true',
help="show version")
args = parser.parse_args()
if args.info:
os.system("cls")
print("This is a script written by Temal")
elif args.version:
os.system("cls")
print("Version: 1.0")

运行main.py -h输出:

usage: help.py [-h] [-i] [-v]
My App
optional arguments:
-h, --help     show this help message and exit
-i, --info     show information
-v, --version  show version

最新更新