addhosts項目已接近尾聲,我很想知道我們寫了多少行代碼。
一、需求
統計源碼目錄下py文件的代碼行數。

二、腳本分析
獲取指定目錄下所有的.py文件,對文件進行遍歷;
讀取每個文件,對文件內容進行遍歷,過濾掉空行和注釋;
三、實現及結果
#coding:utf-8
import os
class StatLines(object):
def __init__(self,path):
self.path = path
def stat_lines(self):
file_list = os.listdir(self.path)
os.chdir(self.path)
total = 0
for file in file_list:
if file.endswith('.py'):
lines = open(file, encoding='utf-8').readlines()
count = 0
for line in lines:
if line == '\n':
continue
elif line.startswith('#'):
continue
else:
count += 1
total += count
print('%s has %d lines' %(file,count))
print('total lines is: %d' %total)
if __name__ == '__main__':
sl = StatLines('E:\\Python_Project\\addhost_v2\\addhosts')
sl.stat_lines()運行結果如下:

四、總結
問題:
在執行open(file).readlines()時,遇到了如下錯誤
“UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 548: illegal multibyte sequence”
解決方法:
在open時,設置encoding='utf-8'后,問題得到解決。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。