溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在python中使用命令行參數(shù)

發(fā)布時間:2021-03-16 15:12:34 來源:億速云 閱讀:207 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)如何在python中使用命令行參數(shù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

在命令行下執(zhí)行某些命令的時候,通常會在一個命令后面帶上一些參數(shù),這些參數(shù)會傳遞到程序里,進(jìn)行處理,然后返回結(jié)果,在linux 下很多命令其實也是用python來實現(xiàn)的。那么如果做到在命令行輸入類似如下的命令并能得到正確的解析呢,比如

python commandline.py -l c:/temp -f c:/aaa.txt

這樣的命令,并在程序中進(jìn)行處理。下面詳細(xì)介紹處理辦法。

python為我們提供了一個模塊叫optparse,也是專門來處理命令行選項的。使用的方法

1. 產(chǎn)生一個 optparse.OptionParser 對象
2. 為這個對象增加 option
3. 對 optparse.OptionParser對象進(jìn)行parse_args() 解析. 就能得到要調(diào)用的方法,和具體的參數(shù),下面就按這個步驟寫了一個例子:

#coding:utf-8
import optparse
import sys
def execCommand():
  descriptionMessage = """
  python command line test
  """
  p = optparse.OptionParser(description=descriptionMessage,
                prog='mycommand',
                version='mycommand 0.1',
                usage= '%prog [starting ][action]')
  p.add_option('--list', '-l',
      action="store_true",
      help='lists all files',
      default=False)
  p.add_option('--file', '-f',
      action="store_true",
      help='test process file',
      default=False)
  options, arguments = p.parse_args()
  print 'get all options:',options
  if options.list:
    print 'begin list function :',arguments
    #可以寫入你自己的邏輯了
  if options.file:
    print 'begin file function:',arguments
    #可以寫入自己的邏輯處理了
if __name__=='__main__':
  execCommand()

下面在命令行窗口運(yùn)行處理,看效果圖:

如何在python中使用命令行參數(shù)

如何在python中使用命令行參數(shù)

如何在python中使用命令行參數(shù)

由此我們可以發(fā)現(xiàn), options 里面 記錄了每個選項是否為 true ,而 arguments 里面按順序記錄了各自的參數(shù)。我們可以在自己的程序中得到,并進(jìn)行處理。

當(dāng)然,你還可以通過 print sys.argv 來得到所有的參數(shù),但sys.argv[0]表示的就是當(dāng)前執(zhí)行的腳本.后面的才是參數(shù).

看完上述內(nèi)容,你們對如何在python中使用命令行參數(shù)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI