求助 遞迴地讀取乙個路徑下檔案總行數遇到的問題。

2021-06-14 03:10:15 字數 1866 閱讀 3226

乙個可以遞迴的計算乙個路徑下檔案總行數的程式。

**如下:

def count_file_line(filename):

count=0

try:

with open(filename) as file:

for each_line in file:

count=count+1

print("目標檔案"+filename+"的行數:"+str(count))

return(count)

except ioerror as err:

print("ioerror:"+str(err))

return(none)

'''比較!有問題的方法

'''def handle_files(total_line_num=0,path=none):

files=os.listdir(path)

for each_file in files:

file_path=path+'/'+each_file

print("處理檔案:"+file_path)

#為什麼遞迴之後total_line_num又變回遞迴前的值了?

if os.path.isfile(file_path):

print("處理前當前總行數:"+str(total_line_num))

total_line_num+=count_file_line(file_path)

print("處理後當前總行數:"+str(total_line_num))

else:

handle_files(total_line_num,file_path)

return total_line_num

'''可以正常工作的方法

def handle_files(path=none):

global total_line_num

files=os.listdir(path)

for each_file in files:

file_path=path+'/'+each_file

print("處理檔案:"+file_path)

if os.path.isfile(file_path):

print("處理前當前總行數:"+str(total_line_num))

total_line_num+=count_file_line(file_path)

print("處理後當前總行數:"+str(total_line_num))

else:

handle_files(file_path)

return total_line_num

'''import os

path='f:/count'

total_line_num=0

total_line_num=handle_files(path=path)

print(total_line_num)

input('press any to exit')

另外程式中操作的目錄及含有的檔案如下:

其他資料夾都是空的

程式的輸出如下:

從乙個檔案讀取資料

從乙個檔案讀取資料,想必都會。比如舉乙個簡單的例子。下面這個函式,就是從檔案讀取所有資料,一行一行讀取,資料存在des這個陣列中 int getstringfromfile file fp char ch int i 0 int j while feof fp des i 0 return 0 當然...

提供乙個讀取CAP檔案的類

capfilereader類使用說明 功能 讀取ethreal生成的cap格式的檔案內的資訊 介面說明 capfilereader void 預設建構函式 capfilereader void 析構函式 bool open const char capfile 開啟cap檔案,引數為檔案的路徑 bo...

如何根據乙個絕對檔案路徑生成乙個相對檔案路徑

日常的開發中,獲取絕對檔案路徑才是主流吧!連path.getfullpath這種生成絕對路徑的方法都已經成為 net standard 的一部分了。然而,生成相對路徑依然有用 比如你的配置檔案是相對於工作目錄的,必須這個路徑是輸出給使用者看的 那麼,既然path沒有生成相對路徑的方法,還能怎麼生成相...