Python,sys 模块的 argument 参数错误
Python, argument parameter error with sys module
我正在尝试使用 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 = help\n-i = information\n-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:\Windows\cmd.py", line 5, in <module>
argument = sys.argv[1]
IndexError: list index out of range
我知道为什么会出现此错误,因为列表中只有一项(路径),因为我没有输入第二个参数。但是如果没有设置第二个参数,我该怎么做才能让脚本忽略这个错误呢?如果有人在没有参数的情况下输入 main.py,我只想打印出以下文本:您好,已安装 Temal 脚本。
或者 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 = help\n-i = information\n-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
我正在尝试使用 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 = help\n-i = information\n-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:\Windows\cmd.py", line 5, in <module>
argument = sys.argv[1]
IndexError: list index out of range
我知道为什么会出现此错误,因为列表中只有一项(路径),因为我没有输入第二个参数。但是如果没有设置第二个参数,我该怎么做才能让脚本忽略这个错误呢?如果有人在没有参数的情况下输入 main.py,我只想打印出以下文本:您好,已安装 Temal 脚本。 或者 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 = help\n-i = information\n-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