使用 sys.argv 检索不同的函数
Using sys.argv to retrieve different functions
假设我有这些代码行:
if __name__ == '__main__':
if '-h' in sys.argv:
show_help()
elif '-f' or 'function'in sys.argv:
print(function1)
elif '-n'or '-name' in sys.argv:
print(function2)
elif '-e' or '-extension'in sys.argv:
print(function3])
elif '-m' or '-missing'in sys.argv:
print(function4)
elif 'r' or '-range' in sys.argv:
print(function5)
else:
exit
这些字母应该是用户在 bash 终端中输入的。
显示帮助方法有效,它能够显示所有字符串。
-f 输入起作用并显示我在该函数中需要的内容,但是代码只是吐出函数 1 中的内容而不是函数 2 中的内容,依此类推。
如何获得这些不同的字母,-f、-n、-e、-m(如果输入)来执行该功能并吐出该信息?
对于初学者 Python 脚本编写者,还有没有使用 argparse 的更有效的方法来做到这一点?
要测试两个值中的任何一个是否在列表中,不能将 or
运算符与 in
运算符一起使用。您需要使用 in
运算符分别测试每个值,如下所示:
if '-h' in sys.argv:
show_help()
elif '-f' in sys.argv or '-function' in sys.argv:
print(function1)
elif '-n' in sys.argv or '-name' in sys.argv:
print(function2)
elif '-e' in sys.argv or '-extension'in sys.argv:
print(function3])
elif '-m' in sys.argv or '-missing'in sys.argv:
print(function4)
elif '-r' in sys.argv or '-range' in sys.argv:
print(function5)
else:
exit
我强烈建议使用 argparse。
如果您不愿意,也可以创建一个标志字典:
flags = {
'-h': show_help,
'-f': function1,
'-function': function1,
'-n': function2,
'-name': function2,
'-e': function3,
'-extension': function3,
'-m': function4,
'-missing': function4,
'-r': function5,
'-range': function5,
}
if __name__ == '__main__':
for flag in sys.argv:
print(flags[flag])
通过创建字典,您可以只查找键。
它会产生更干净、更快、更易于维护的代码。
假设我有这些代码行:
if __name__ == '__main__':
if '-h' in sys.argv:
show_help()
elif '-f' or 'function'in sys.argv:
print(function1)
elif '-n'or '-name' in sys.argv:
print(function2)
elif '-e' or '-extension'in sys.argv:
print(function3])
elif '-m' or '-missing'in sys.argv:
print(function4)
elif 'r' or '-range' in sys.argv:
print(function5)
else:
exit
这些字母应该是用户在 bash 终端中输入的。 显示帮助方法有效,它能够显示所有字符串。 -f 输入起作用并显示我在该函数中需要的内容,但是代码只是吐出函数 1 中的内容而不是函数 2 中的内容,依此类推。
如何获得这些不同的字母,-f、-n、-e、-m(如果输入)来执行该功能并吐出该信息? 对于初学者 Python 脚本编写者,还有没有使用 argparse 的更有效的方法来做到这一点?
要测试两个值中的任何一个是否在列表中,不能将 or
运算符与 in
运算符一起使用。您需要使用 in
运算符分别测试每个值,如下所示:
if '-h' in sys.argv:
show_help()
elif '-f' in sys.argv or '-function' in sys.argv:
print(function1)
elif '-n' in sys.argv or '-name' in sys.argv:
print(function2)
elif '-e' in sys.argv or '-extension'in sys.argv:
print(function3])
elif '-m' in sys.argv or '-missing'in sys.argv:
print(function4)
elif '-r' in sys.argv or '-range' in sys.argv:
print(function5)
else:
exit
我强烈建议使用 argparse。
如果您不愿意,也可以创建一个标志字典:
flags = {
'-h': show_help,
'-f': function1,
'-function': function1,
'-n': function2,
'-name': function2,
'-e': function3,
'-extension': function3,
'-m': function4,
'-missing': function4,
'-r': function5,
'-range': function5,
}
if __name__ == '__main__':
for flag in sys.argv:
print(flags[flag])
通过创建字典,您可以只查找键。
它会产生更干净、更快、更易于维护的代码。