求助:递归地读取一个路径下文件总行数遇到的问题。

一个可以递归的计算一个路径下文件总行数的程序。

代码如下:

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')


另外程序中操作的目录及含有的文件如下:

  

其他文件夹都是空的

程序的输出如下:








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值