python編寫文件統計腳本
阿新 • • 發佈:2019-01-29
os.path image utf 命令 pat 多級目錄 思路 讀取 pre
python編寫文件統計腳本
思路:用os模塊中的一些函數(os.listdir()、os.path.isdir()、os.path.join()、os.path.abspath()等)
實現功能:顯示多級目錄,以及自己要找的具體文件類型(例:以".py"結尾的文件),並讀取每個文件的第一行(一般為註釋說明,這樣就能大致了解這個文件是幹事什麽的)
先編寫二級目錄文件統計腳本
代碼如下:
#文件統計 os.chdir("F:\\pythonstudy") for fp in os.listdir(): if os.path.isdir(fp): print(os.path.join("f:\\pythonstudy",fp)) for f in os.listdir(fp): if f.endswith(".py"): print("\t",os.path.abspath(f)) #打印f的絕對路徑 with open(fp+"\\"+f,encoding="utf-8") as f1: print("\t",f1.readline()) #讀取第一行
運行效果如下:
如何實現多級目錄中文件的統計呢,這裏用函數的遞歸調用方式來實現
代碼如下:
#文件統計 def sfile(dir,layer=1): print(" "*(layer-1)+dir) for fp in os.listdir(dir): nf=os.path.join(dir,fp) if os.path.isdir(nf): sfile(nf,layer+1) else: if nf.endswith(".py"): #統計以".py"結尾的文件 print(" "*layer+nf,end="\t"*(5-layer)) #layer是為了美觀,對整齊
layer是
為了美觀,layer是 with open(nf,encoding="utf-8") as f1: print(f1.readline().strip()) sfile("f:\\sss")
運行效果如下:
上圖可以看到實現了多級目錄中統計".py"結尾的文件,並打印出每個文件的第一行。
如果想統計圖片只需要簡單的修改就好
def sfile(dir,layer=1): print(" "*(layer-1)+dir) for fp in os.listdir(dir): nf=os.path.join(dir,fp) if os.path.isdir(nf): sfile(nf,layer+1) else: if nf.endswith(".jpg"): print(" "*layer+nf,end="\t"*(5-layer)) sfile("f:\\sss")
運行效果如下:
註:想統計整個盤符下的某種文件類型,命令提示符(cmd)需要管理員權限,不然會提示拒絕訪問
!!!!未解決問題:如何實現統計"F盤"中所有的jpg文件,但不顯示(打印)目錄中沒有jpg文件的路徑,只顯示目錄中有jpg文件的路徑
本人腦袋要爆炸了,實在想不出,有想法的博友,給點意見
python編寫文件統計腳本