python實現功能 python實現wc功能

2021-10-19 21:21:14 字數 2014 閱讀 8333

拿到題目後,發現這個作業需要開啟檔案,使用正規表示式匹配,接受命令行引數等操作,於是就有搜尋引擎查詢了許多有關這方面的內容.

整體設計思路是使用命令列引數進行for迴圈,再使用if-elif-else進行匹配,每個命令列引數的實現做成乙個函式

實現了-a -c -l -w 的功能

-l 功能:只需要開啟檔案,然後使用 for迴圈讀取檔案,每讀取一次計數器加一,就能得出結果

def line(f):#計算行數的函式

i =0for line inf:

i+= 1

print("line number is", i)

-c 功能:使用read()函式,再使用len()函式,即可讀取字元數(我認為\n也算是乙個字元)

def character(f):#計算字元數的函式

print("character number is", len(f.read()))

之前想過用正規表示式識別\n,但是後來發現**中也可能包含\n,這樣計數就會出現錯誤

-w 功能:使用正規表示式找出所有的詞數,用findall()返回乙個列表,再用len()計算數量

def word(f):#計算單詞數的函式

w = re.compile("[a-z]+", re.i).findall(f.read())print("word number is",len(w))

-a 基本思路是先判斷是否為空行,再判斷是否為單行注釋,最後判斷是否為注釋塊,都不是則為**行,思路有些繁瑣,而且對檔案中有包含/*, */, //的字串會出現識別錯誤

執行完乙個函式後,檔案物件指標指向末尾,應此要用符f.seek(0, 0)使其指向開頭

測試:空檔案

單字元檔案

單詞檔案

單行檔案:this is a line of test4

標準檔案test

已上傳至github

經測試包含/**/型別的注釋**正規表示式匹配會出現問題

psp表

psp2.1

personal software process stages

預估耗時(分鐘)

實際耗時(分鐘)

planning

計畫· estimate

· 估計這個任務需要多少時間

development

開發· analysis

· 需求分析(包括學習新技術)

· design spec

· 生成設計文件

· design review

· 設計複審(和同事審核設計文件)

· coding standard

· **規範(為目前的開發制定合適的規範)

· design

· 具體設計

· coding

· 具體編碼

· code review

· **複審

· test

· 測試(自我測試,修改**,提交修改)

reporting

報告· test report

· 測試報告

· size measurement

· 計算工作量

· postmortem & process improvement plan

· 事後總結,並提出過程改進計畫

合計

python實現演算法 kmp演算法python實現

kmp演算法python實現 kmp演算法 kmp演算法用於字串的模式匹配,也就是找到模式字串在目標字串的第一次出現的位置 比如abababc 那麼bab在其位置1處,bc在其位置5處 我們首先想到的最簡單的辦法就是蠻力的乙個字元乙個字元的匹配,但那樣的時間複雜度會是o m n kmp演算法保證了時...

python實現支付功能

支付寶開發者公鑰 支付寶生成 alipay public key os.path.join base dir,utils paycenter alipay certs alipay public key alipay public key obj pub openssl.crypto.load pu...

Python實現 tail f 功能

筆者工作中需要監控線上機器的日誌,然後讀取每一行日誌進行處理。在linux機器上,使用如下的指令可以實時監控日誌的產生。tail f test.log 使用tail命令的 f選項可以方便地查閱正在改變的日誌檔案,會把所監控檔案最尾部的內容顯示在螢幕上,並且不斷重新整理。而筆者需要實時得獲取新增的日誌...