![](/img/trans.png)
[英]How to check if directory exist or not on passing as a parameter in python?
[英]How to check if the parameter exist in python
我想创建一个简单的 python 脚本,它将从控制台获取一个参数,并显示该参数。 如果没有参数,那么我想显示错误消息,但自定义消息不像 IndexError: list index out of range
像这样的东西:
if isset(sys.argv[1]):
print sys.argv[1];
else:
print "No parameter has been included"
你可以检查长度
if len(sys.argv) > 1:
...
或尝试/除外
try:
sys.argv[1]
except IndexError as ie:
print("Exception : {0}".format(ie))
import sys
try:
print sys.argv[1]
except IndexError:
print "No parameter has been included"
import sys
print sys.argv[0] # will print your file name
if len(sys.argv) > 1:
print sys.argv[1];
else:
print "No parameter has been included"
或者
import sys
try:
print sys.argv[1]
except IndexError, e:
print "No parameter has been included"
只是为了好玩,您还可以使用getopt
,它为您提供了一种使用 unix getopt
约定来预定义可接受的选项的方法。
import sys
import getopt
try:
opts, args = getopt.getopt(sys.argv[1:], "hvxrc:s:", ["help", "config=", "section="])
except getopt.GetoptError as err:
print ("Option error:", str(err))
opts=[]
for op , val in opts:
print ("option",op,"Argument",val)
if not opts:
print ("No parameter supplied")
在上面,如果提供了不正确的参数,则所有选项都将被废弃。
使用示例如下:
python myprog.py -h
python myprog.py --help
python myprog.py -c123
python myprog.py --config=123
https://pymotw.com/2/getopt/
http://linux.about.com/library/cmd/blcmdl1_getopt.htm
无一例外的模型使用 if else 简写,在一行中我们可以读取 args
args = sys.argv
env = args[1:] and args[1] or None
username = args[2:] and args[2] or None
password = args[3:] and args[3] or None
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.