[Python] sys.argv命令行參數傳入
阿新 • • 發佈:2018-04-03
spa 圖打印 clas else 釋放 style this 命令行 [1]
書上一道題需要實現功能"根據賬號查詢密碼, 復制密碼到剪貼板". 賬號和密碼儲存在代碼字典中.
問題描述:
作為Python新手從代碼(如下)看只知道:
1. sys.argv初始包含一行文件路徑.
2. 需要將待查詢的賬號傳入sys.argv.
怎麽操作呢?
#! python3 #pw.py - An inssecure password locker program. #Run this program in CMD, parameter (account) load after filename. Like: pw.py email PASSWORDS={‘email‘:‘F7minlBDDuvJJux‘, ‘blog‘:‘VmALvWyKAxiVH5‘,‘luggage‘:‘12345‘} import sys,pyperclip 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)
解決思路:
命令行參數, 通過命令行來操作了.
在CMD中cd到pw.py的目錄下, 敲如命令時將參數置於文件名之後. 如下圖, 搞定了.
D:\DIV\PyScripts>pw.py blog Password for blog copied to clipboard. D:\DIV\PyScripts>pw.py luggagePassword for luggage copied to clipboard. D:\DIV\PyScripts>pw.py email Password for email copied to clipboard. D:\DIV\PyScripts>
備註:
sys.argv用import導入, 初始值是運行文件所在路徑+文件名, 傳入賬號之後賬號的值被添加到了sys.argv中, 如下:
[‘D:\\DIV\\PyScripts\\pw.py‘, ‘email‘]
程序運行完成之後再試圖打印sys.argv就不行了, 傳入的參數被釋放.
以上是Python新手對於sys.argv的一點粗淺認識, 如果有沒理解對的地方, 歡迎各位指正.
[Python] sys.argv命令行參數傳入