2016-01-26 74 views
2
import sys 
import os 
import glob 
directory_input = raw_input("path to base directory?") 
directory = directory_input 

for folder in glob.glob(os.path.join(directory,"savedrecs(*).txt")): 
    a = 0 
    for file in glob.glob(os.path.join(folder, "savedrecs(*).txt")): 
     a=sum(not line.strip() == "\n" for line in searchfile) 
    print a 

這是我的代碼,而是一個= SUM(未line.strip()==「\ n」個部分不工作,結果始終爲零。如何計算文本文件中的空行數?

+4

您可以顯示完整的代碼,和確切的結果?例如,你如何做計數,你如何打開文件,你如何閱讀線條。 –

+3

'蘇m(不是line.strip()用於f中的行)' –

+2

你的第一種方法應該可行。給一個它沒有的輸入文件。 – timgeb

回答

3

你永遠不打開文件和你的glob模式不查找文件夾,它查找文件,只需glob的一次用戶定義的目錄,打開每個文件sum時代not line.strip()值爲True:

import os 
import glob 
directory = raw_input("path to base directory?") 


for fle in glob.glob(os.path.join(directory,"savedrecs*.txt")): 
    with open(fle) as f: 
     sm = sum(not line.strip() for line in f) 
     print("{} has {} empty lines".format(fle, sm)) 
+0

謝謝!一個問題,line.strip()和line.strip()==「」做了什麼區別,strip命令實際上做了什麼? –

+0

兩者都是等價的,就像檢查一個空列表,元組等一樣。你不必明確理解一個空字符串,strip會去掉任何換行符,所以如果剝離後你有一個空字符串,你知道你有一個空白線。 –