跟前面的題目一樣,依舊是遍歷資料夾裡的檔案,比記錄單詞容易多了,唯一需要注意的是python裡面的3引號多行注釋』』』,我平時都不用的,為了記錄特地改了幾個多行注釋
import os, re
if __name__ ==
'__main__'
:#分別計算總行數,空行數,注釋行數
count, ept_line, comment =0,
0,0#**檔案都放在test資料夾裡
os.chdir(
'test'
) file_names = os.listdir(
)for f in file_names:
with
open
(f,'r'
, encoding =
'utf-8')as
file
:while
true
: buf =
file
.readline(
)#因為我tab是設定成4個空格的,所以這樣能把前面的tab刪除掉
buf = re.sub(
' ',
'', buf)
#讀到檔案尾就結束
if buf =='':
break
#記錄空行數
elif buf ==
'\n'
: count +=
1 ept_line +=
1#記錄注釋行數,因為前面的空格已經刪除了,所以可以用match來匹配第乙個#
elif re.match(
'#', buf)
: count +=
1 comment +=
1#記錄多行注釋,'''本身的一行也算作注釋行
elif re.match(
"'''"
, buf)
: count +=
1 comment +=
1#'''裡面所有的行都是注釋
while
true
: buf =
file
.readline(
) count +=
1 comment +=
1#第2次找到'''就退出
if re.search(
"'''"
, buf)
:break
else
: count +=
1print
('count:'
, count)
print
('empty lines:'
, ept_line)
print
('comment:'
, comment)
(可憐)的執行結果:
count: 827
empty lines: 109
comment: 77
python練習冊 第0002題
將 0001 題生成的 200 個啟用碼 或者優惠券 儲存到 mysql 關係型資料庫中。這道題是送分題,就是讓人熟悉一下鏈結資料庫以及mysql的使用。import pymysql import random import string def generate length s join ran...
Python練習冊第01題
我就假定啟用碼是 ta0e8 e9zvk urwgb jiklx 這樣的形式的 import random,string defgencdk num 隨機種子範圍取所有大小寫字母和數字 str base string.ascii letters string.digits 建乙個列表用來存放最終20...
python練習冊0004題
在任意乙個英文文件中,統計單詞出現的次數,分析 本題不是很難,單詞通常以空格隔開,但是有些單詞後面跟一些特殊符號,只需把這些特殊符號替換掉就可以了,一 1 importre2 3 file name code.txt 4 5 lines count 0 6 words count 0 7 chars...