为了账号安全,请及时绑定邮箱和手机立即绑定

python没有变量定义所以要比较时要注意类型

标签:
Python

今天使用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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消