最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)代碼統(tǒng)計程序

 更新時間:2019年09月19日 08:35:53   作者:手扣手一緒  
這篇文章主要為大家詳細介紹了python實現(xiàn)代碼統(tǒng)計程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)代碼統(tǒng)計程序的具體代碼,供大家參考,具體內(nèi)容如下

# encoding="utf-8"

"""
統(tǒng)計代碼行數(shù)
"""

import sys
import os

def count_file_line(path):
 """統(tǒng)計文件的有效行數(shù)"""
 countLine = 0
 # 設(shè)置一個標志位,當遇到以"""或者'''開頭或者結(jié)尾的時候,置為False
 flag = True

 # 使用utf-8格式的編碼方式讀取文件,如果讀取失敗,將使用gbk編碼方式讀取文件
 try:
 fp = open(path, "r", encoding="utf-8")
 encoding_type = "utf-8"
 fp.close()
 except:
 encoding_type = "gbk"

 with open(path, "r", encoding=encoding_type) as fp:
 for line in fp:
  # 空行不統(tǒng)計
  if line.strip():
  line = line.strip()
  # 注意下面的這兩個elif必須要前面,這樣子當('"""')結(jié)束之后及時將flag置為True
  if line.endswith('"""') and flag == False:
   flag = True
   continue
  if line.endswith("'''") and flag == False:
   flag = True
   continue
  if flag == False:
   continue
  if line.startswith("#!") or line.startswith("#-*-") or line.startswith("# encoding"):
   countLine += 1
  # 如果以“#”號開頭的,不統(tǒng)計
  elif line.startswith("#"):
   continue
  # 如果同時以("'''")或者('"""')開頭或者結(jié)尾(比如:"""aaa"""),那么不統(tǒng)計
  elif line.startswith('"""') and line.endswith('"""') and line != '"""':
   continue
  elif line.startswith("'''") and line.endswith("'''") and line != "'''":
   continue
  # 如果以("'''")或者('"""')開頭或者結(jié)尾(比如:aaa"""或者"""bbb),那么不統(tǒng)計
  # 注意下面的這兩個elif必須要放后面
  elif line.startswith('"""') and flag == True:
   flag = False
   continue
  elif line.startswith("'''") and flag == True:
   flag = False
   continue
  else:
   countLine += 1
 return countLine

def count_codes(path,file_types=[]):
 """統(tǒng)計所有文件代碼行"""
 # 判斷path是目錄還是文件,如果是目錄的話,遍歷目錄下所有的文件
 if not os.path.exists(path):
 print("您輸入的路徑不存在!")
 return 0
 countTotalLine = 0
 file_paths = {}
 if os.path.isdir(path):
 for root,dirs,files in os.walk(path):
  for name in files:
  if not file_types:
   file_types = ["txt","py"]
   # print(file_types)
  if os.path.splitext(name)[1][1:] in file_types:
   file_path = os.path.normpath(os.path.join(root,name))
   # print(file_path)
   file_lines = count_file_line(file_path)
   countTotalLine += file_lines
   file_paths[file_path] = file_lines
 else:
 if not file_types:
  file_types = ["txt","py"]
 if os.path.splitext(path)[1][1:] in file_types:
  countTotalLine = count_file_line(path)
  file_paths[path] = count_file_line(path)

 return countTotalLine,file_paths


if __name__ == "__main__":
 # 打印出命令行輸入的參數(shù)
 # print(sys.argv)
 if len(sys.argv) < 2:
 print("請輸入路徑!")
 sys.exit()
 path = sys.argv[1]
 # print(path)
 file_types = sys.argv[2:]
 # print(file_types)
 print(count_codes(path,file_types))

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PyCharm代碼提示忽略大小寫設(shè)置方法

    PyCharm代碼提示忽略大小寫設(shè)置方法

    今天小編就為大家分享一篇PyCharm代碼提示忽略大小寫設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 深入淺析Python 中的sklearn模型選擇

    深入淺析Python 中的sklearn模型選擇

    這篇文章主要介紹了Python sklearn模型選擇的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Python解惑之True和False詳解

    Python解惑之True和False詳解

    這篇文章主要給大家介紹了關(guān)于Python中常用的數(shù)據(jù)類型bool(布爾)類型的兩個值:True和False的相關(guān)資料,通過示例代碼給大家進行了解惑,讓對這兩個值有所疑惑的朋友們能有起到一定的幫助,需要的朋友下面來一起看看吧。
    2017-04-04
  • 詳解Python中find()方法的使用

    詳解Python中find()方法的使用

    這篇文章主要介紹了詳解Python中find()方法的使用,是Python學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python基于Socket實現(xiàn)簡易多人聊天室的示例代碼

    Python基于Socket實現(xiàn)簡易多人聊天室的示例代碼

    這篇文章主要介紹了Python基于Socket實現(xiàn)簡易多人聊天室的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • python實現(xiàn)AES加密解密

    python實現(xiàn)AES加密解密

    這篇文章主要為大家詳細介紹了python實現(xiàn)AES加密解密的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 淺談Python 列表字典賦值的陷阱

    淺談Python 列表字典賦值的陷阱

    今天小編就為大家分享一篇淺談Python 列表字典賦值的陷阱,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python正則表達式匹配不包含某幾個字符的字符串方法

    python正則表達式匹配不包含某幾個字符的字符串方法

    今天小編就為大家分享一篇python正則表達式匹配不包含某幾個字符的字符串方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 一起來了解python的if流程控制

    一起來了解python的if流程控制

    這篇文章主要為大家詳細介紹了python的if流程控制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • PyTorch實現(xiàn)模型剪枝的方法

    PyTorch實現(xiàn)模型剪枝的方法

    剪枝是一種優(yōu)化模型的技術(shù),可以幫助減少模型的大小和計算量,同時保持模型的準確性,本文主要介紹了PyTorch實現(xiàn)模型剪枝的方法,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04

最新評論

聂拉木县| 左权县| 黑河市| 花莲县| 霍林郭勒市| 二手房| 江达县| 宣汉县| 梅河口市| 灵石县| 崇礼县| 长宁区| 曲靖市| 安康市| 清丰县| 凤庆县| 措美县| 志丹县| 恩施市| 老河口市| 曲靖市| 江北区| 宾川县| 邵武市| 泗洪县| 名山县| 孟连| 道孚县| 屏南县| 陈巴尔虎旗| 佛坪县| 南汇区| 都匀市| 调兵山市| 明水县| 乡宁县| 遵义县| 巩留县| 福清市| 长阳| 金乡县|