如何在python中设置可选输入参数
我在下面的代码段中检查了第一个参数,并遇到了以下错误..有人能帮助我选择第一个参数吗 代码片段:-如何在python中设置可选输入参数,python,parameters,Python,Parameters,我在下面的代码段中检查了第一个参数,并遇到了以下错误..有人能帮助我选择第一个参数吗 代码片段:- branch = '' if sys.argv[1]: branch = sys.argv[1] 错误:- Traceback (most recent call last): File "test.py", line 102, in <module> main() File "test.py", line 66, in main if sys.a
branch = ''
if sys.argv[1]:
branch = sys.argv[1]
错误:-
Traceback (most recent call last):
File "test.py", line 102, in <module>
main()
File "test.py", line 66, in main
if sys.argv[1]:
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“test.py”,第102行,在
main()
文件“test.py”,第66行,在main中
如果系统argv[1]:
索引器:列表索引超出范围
使用异常处理()
您可以使用:
branch = sys.argv[1] if len(sys.argv) >= 2 else ''
要将参数输入python,可以使用。这里的参数可以是可选的,只要有正确的标志,就可以按任何顺序输入 在下面的示例中,用户有两个可选参数要设置,输入文件名和数据库名。可以使用 python example.py-f test.txt-d HelloWorld 或 python example.py file=test.txt database=HelloWorld 或者两者兼而有之。 可以更改标志和名称以反映您的需要
import getopt
def main(argv):
inputFileName = ''
databaseName = ''
try:
opts, args = getopt.getopt(argv,"f:d:",["file=","database="])
except getopt.GetoptError:
print('-f <inputfile> -d <databasename> -c <collectionname>')
sys.exit()
for opt, arg in opts:
if opt in ('-f','--file'):
inputFileName = arg
elif opt in ('-d','--database'):
databaseName = arg
if __name__ == "__main__":
main(sys.argv[1:])
导入getopt
def总管(argv):
inputFileName=“”
数据库名称=“”
尝试:
opts,args=getopt.getopt(argv,“f:d:”,[“file=”,“database=”)
除getopt.GetoptError外:
打印('-f-d-c')
sys.exit()
对于opt,opt中的参数:
如果选择加入('-f','-file'):
inputFileName=arg
elif opt-in('-d','-database'):
databaseName=arg
如果名称=“\uuuuu main\uuuuuuuu”:
main(sys.argv[1:])
使用argparse模块
import getopt
def main(argv):
inputFileName = ''
databaseName = ''
try:
opts, args = getopt.getopt(argv,"f:d:",["file=","database="])
except getopt.GetoptError:
print('-f <inputfile> -d <databasename> -c <collectionname>')
sys.exit()
for opt, arg in opts:
if opt in ('-f','--file'):
inputFileName = arg
elif opt in ('-d','--database'):
databaseName = arg
if __name__ == "__main__":
main(sys.argv[1:])