错误日志: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系统真的有点坑。。。