-
arg_1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/usr/bin/python #coding=utf-8 import argparse
def parse_args():
description = "usage: % prog[options]"
parser = argparse.ArgumentParser(description = description)
parser.add_argument( 'addresses' , nargs = '*' , help = 'help' )
parser.add_argument( 'filename' , help = 'help' )
parser.add_argument( '-p' , '--port' , type = int , help = 'help' )
parser.add_argument( '--iface' , help = help , default = 'localhost' )
parser.add_argument( '--delay' , type = float , help = help , default = . 7 )
parser.add_argument( '--bytes' , type = int , help = help , default = 10 )
args = parser.parse_args()
return args
if __name__ = = '__main__' :
args = parse_args()
for address in args.addresses:
print 'The address is : %s .' % address
print 'The filename is : %s .' % args.filename
print 'The port is : %d.' % args.port
print 'The interface is : %s.' % args.iface
print 'The number of seconds between sending bytes : %f' % args.delay
print 'The number of bytes to send at a time : %d.' % args.bytes
#-p 22 --delay 1.2 127.0.0.1 172.16.55.67 poetry/ecstasy.txt |
2.arg_2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/usr/bin/python # coding=utf-8 import argparse
from argparse import ArgumentParser, RawTextHelpFormatter
def get_args():
"""实例化类,formatter_class参数允许help信息以自定义的格式显示"""
parser = ArgumentParser(description = "This is a tool for execute command(s) on remote server(s) or get/put file(s) from/to the remote server(s)\nNotice: please always use '/' as path separater!!!" ,formatter_class = RawTextHelpFormatter,epilog = "Notice:\n If any options use more than once,the last one will overwrite the previous" )
remote_command = parser.add_argument_group( 'remote command' , 'options for running remote command' )
remote_command.add_argument( '--cmd' , metavar = '“COMMAND”' , dest = 'cmd' , help = "command run on remote server,multiple commands sperate by ';'" )
sftp = parser.add_argument_group( 'sftp' , 'options for running sftp' )
sftp.add_argument( '--put' , metavar = '', help = "transfer from local to remote" , nargs = 2 )
sftp.add_argument( '--get' , metavar = '', help = "transfer from remote to local" , nargs = 2 )
global args
args = vars (parser.parse_args())
print args
n = 0
for i in ( 'cmd' , 'put' , 'get' ):
if i in args:
if args[i] is None :
del args[i]
else :
n + = 1
if n > 1 :
print ( '\n Only one of the "--cmd --put --get" can be used!' )
exit( 10 )
if __name__ = = '__main__' :
get_args()
if 'cmd' in args:
echo_cmd = args[ 'cmd' ]
print echo_cmd
# --cmd uptime --get /home/nginx /home/nginx
|
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/2055878,如需转载请自行联系原作者