今天使用python随便写另一个读取文件的程序,文件的内容是:第一行是文件总行数与总的数据大小(行数从第二行开
始算起),期间需要对比行数是否一致。代码中打印出总行数与计算出来的行数是一致的,但是代码中通过!=判断是不一致的。比较纳闷,怎么回事?之后打印出两个行数的变量类型发现一个int,一个string类型,那就肯定不一致了,原来读取到第一行后给总行数赋值是没有类型转化。
import os
import sys
#总的交易笔数
sum_count = 0
#总交易额
sum_money=0.0
#总行数
count = 0
#明细之和
detail_sum = 0.0
rootdir = os.getcwd()
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
for i in list:
path = os.path.join(rootdir,i)#将目录名与文件名拼接成一个完整的路径
if os.path.isfile(path):
#判断是不是哦txt文件
file_post = str(i.split('.')[-1])
if file_post == 'txt':
fo = open(path, "r")
#第一遍循环校对总金额与总笔数
for line in fo.readlines():
if line.count('|')==1:
***sum_count = int(line.split('|')[0])***#这里要转化类型,通过split赋值的都是string类型
sum_money = line.split('|')[-1]
else:
count += 1
rmb = line.split('|')[7]
detail_sum = detail_sum + float(rmb)
print("总交易金额:"+str(detail_sum))
if sum_count != count:#类型不一致也会执行下面的语句
print("总交易笔数与明细中的笔数不一致,%d:%d"%(sum_count,count))
elif sum_money != detail_sum:
print("总金额与明细中的金额汇总不一致")
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦