1.docopt模块的用法
1 # _*_ coding:utf-8 _*_ 2 3 4 '''命令行的火车票查看系统 5 Usage: 6 index [-gdtkz] <from> <to> <date> 7 8 Options: 9 -h,--help 显示帮助 10 -g 高铁 11 -d 动车 12 -t 特快 13 -k 快速 14 -z 直达 15 Example: 16 index 上海 北京 2018-5-28 17 18 19 20 ''' 21 22 23 24 from docopt import docopt 25 26 def cli(): 27 arguments= docopt(__doc__) 28 print(arguments) 29 30 if __name__=='__main__': 31 cli()
注意:文档注释之前不能再有文档注释,不然会报类型错误
输出结果
2.处理命令行参数
命令行参数存储在变量sys.argv中。sys.argv列表中的第一项总是一个字符串,它包含程序的文件名(‘pw.py’)第二项应该是第一个命令行参数。
项目一:获取口令
准备知识-----pyperclip模块
>>> import pyperclip
>>> pyperclip.copy('Hello world!')
>>> pyperclip.paste()
'Hello world!'
当然,如果你的程序之外的某个程序改变了剪贴板的内容,paste()函数就会返 回它。
准备知识-----命令行参数
#! python3
# pw.py - An insecure password locker program.
PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6',
'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt',
'luggage': '12345'}
import sys
if len(sys.argv) < 2:
print('Usage: python pw.py [account] - copy account password')
sys.exit()
account = sys.argv[1] # first command line arg is the account name
if account in PASSWORDS:
pyperclip.copy(PASSWORDS[account])
print('Password for ' + account + ' copied to clipboard.')
else:
print('There is no account named ' + account)
1 #! python3 2 3 # pw.py - An insecure password locker program. 4 5 PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6', 6 7 'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt', 8 9 'luggage': '12345'} 10 11 import sys 12 13 if len(sys.argv) < 2: 14 15 print('Usage: python pw.py [account] - copy account password') 16 17 sys.exit() 18 19 account = sys.argv[1] # first command line arg is the account name 20 21 if account in PASSWORDS: 22 23 pyperclip.copy(PASSWORDS[account]) 24 25 print('Password for ' + account + ' copied to clipboard.') 26 27 else: 28 29 print('There is no account named ' + account)
实现功能:由于在登录是时长忘记密码,所以可以将器保存为一个.py文件,以字典的形式,然后通过字典与剪切版的结合实现密码账户的复制填充。
扩展:
在 Windows 上,你可以创建一个批处理文件,利用 Win-R 运行窗口,来运行 这个程序(关于批处理文件的更多信息,参见附录 B)。在文件编辑器中输入以下 代码,保存为 pw.bat,放在 C:Windows 目录下:
@py.exe C:Python34pw.py %*
@pause
有了这个批处理文件,在 Windows 上运行口令保存程序,就只要按下 Win-R, 再输入 pw 。