Fac*_*res 2 python validation argv
我需要检查用户是否提供了输入文件和输出名称,并且正在执行以下操作:
def main():
if len(argv) > 2:
script, file_in, file_out = argv
execute_code(file_in, file_out)
else:
print "Wrong number of arguments!"
print "Usage: python script.py filename_input filename_output"
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以检查argv参数是否正确吗?
您将使用argparse:
该argparse模块可以很容易地编写用户友好的命令行界面。该程序定义了所需的参数,而 argparse会找出如何从sys.argv中解析这些参数。
例如,您的main函数可以重写为
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('file_in', help='input file')
parser.add_argument('file_out', help='output file')
args = parser.parse_args()
execute_code(args.file_in, args.file_out)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
argparse 如果缺少某些必需的参数,将为您执行验证并显示相当有用的错误消息:
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('file_in', help='input file')
parser.add_argument('file_out', help='output file')
args = parser.parse_args()
execute_code(args.file_in, args.file_out)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
此外,它将生成帮助消息
vaultah@base:~$ python3 /home/vaultah/untitled.py -h
usage: untitled.py [-h] file_in file_out
positional arguments:
file_in input file
file_out output file
optional arguments:
-h, --help show this help message and exit
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2225 次 |
| 最近记录: |