错误日志:ValueError: could not convert string to float: '锘181'

错误日志:ValueError: could not convert string to float: ‘锘181’

在用ADvancedEAST训练自己的模型时,遇到这个错误,很奇怪。
目前尝试的方法:
1、降低numpy的版本,把python从3.7降到3.6尝试一下。结果发现错误仍然存在。查阅很多资料,说里面包含空格或者制表符,反复检查也没有。
2、测试后面的txt文件,发现几乎后面的文件的第一个数字前面都有这个莫名其妙的“锘”字,本着试试的原则,百度了一下这个字。问题解决。
原来是因为Windows下txt文本文件的编码问题,windows自带的文档编辑器会插入一个bom头,而之所以报这个奇怪的错误就是因为这个bom头的原因,把它去掉就好啦。
去掉bom头文件的代码:

import os
def remove_BOM(path):
        BOM = b'\xef\xbb\xbf'
        with open( path, 'r+b') as f:
            if BOM == f.read(3):
                content = f.read()
                f.seek(0)
                f.write(content)
                f.truncate()
        print("移除完成!")

if __name__ == '__main__':
    list_path='D:\work\Chepai\LicensePlateData\DataTxt'  #txt目录
    dir_files = os.listdir(list_path)  # 得到该文件夹下所有的文件,timg(1).txt  timg(2).txt ....
    for file in dir_files:
            file_path = os.path.join(list_path, file)  # 路径拼接成绝对路径
            #print(file_path)
            remove_BOM(file_path)

坑了好几天的错误,必须要记录一下,Windows系统真的有点坑。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值