argparse模組是用於python中命令列引數解析的模組
以下**為ls功能的實現
import argparse
import stat
from pathlib import path
from datetime import datetime
#獲得乙個引數解析器
parser = argparse.argumentparser(
prog =
'ls'
, description =
'list information about the files'
, add_help =
false
)#新增引數
parser.add_argument(
'path'
, nargs=
'?', default=
'.',
help
='filepath'
)#位置引數,?表示可有可無,預設值,幫助文字
parser.add_argument(
'-l'
, dest=
'long'
, action=
'store_true'
,help
='use a long listing format'
)parser.add_argument(
'-a'
,'--all'
, action=
'store_true'
,help
='do not ignore entries starting with .'
)parser.add_argument(
'-h'
,'--human-readable'
, action=
'store_true'
,help
='with -l, print sizes in human readable format'
)def
listdir
(path,
all=
false
, detail=
false
, human=
false):
def_gethuman
(size:
int)
: units =
'kmgtp'
depth =
0while size >=10:
size = size //
1000
depth +=
1return
'{}{}'
.format
(size, units[depth]
)def
_listdir
(path,
all=
false
, detail=
false
, human=
false):
'''詳細列出目錄'''
p = path(path)
for i in p.iterdir():
ifnot
alland i.name.startswith(
'.')
:continue
ifnot detail:
yield
(i.name,
)else
: st = i.stat(
) mode = stat.filemode(st.st_mode)
atime = datetime.fromtimestamp(st.st_atime)
.strftime(
'%y-%m-%d %h:%m:%s'
) size =
str(st.st_size)
ifnot human else _gethuman(st.st_size)
yield
(mode, st.st_nlink, st.st_uid, st.st_gid, size, atime, i.name)
#排序yield
from
sorted
(_listdir(path,
all, detail, human)
, key=
lambda x: x[
len(x)-1
])if __name__ ==
'__main__'
: args = parser.parse_args(
)#分析引數,傳入可迭代的引數
print
(args)
parser.print_help(
) files = listdir(args.path, args.
all, args.
long
, args.human_readable)
print
(list
(files)
)
測試:python ***.py -lah
以上**小結:
建立parser=argumentparser( )物件
新增引數add_argument( )
自定義功能函式func( )
args = parser.parse_args( )
呼叫函式func(args)
Python 中argparse模組的使用
閱讀原文 python解析命令列讀取引數有兩種方式 sys.argv和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.argv將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.argv 1 命令列執...
Python 中argparse模組的使用
python解析命令列讀取引數有兩種方式 sys.ar 和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.ar 將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.ar 1 命令列執行效果 pytho...
python中argparse模組的使用
有兩個檔案乙個是 檔案1 sync shop source bimer.sh 檔案2 sync shop source bimer.py 在sync shop source bimer.sh 中呼叫sync shop source bimer.py 檔案1中產生的檔案要傳遞給檔案2 檔案1中的內容 ...