line contains NULL byte或者could not convert strin to float: ?(文档内有非法字符或空字符,但打开文档又不可见)

line contains NULL byte或者could not convert strin to float: ?(文档内有非法字符或空字符,但打开文档又不可见)

原因

文档内有空字符或非法字符又或者python版本的问题又或者编码问题,都有可能出现这种问题

解决办法

代码如下:

 #open and read doc
import codecs
import csv
with codecs.open(p,'rb',"utf-16") as f:
    reader = csv.reader(f)
    ...

运行平台

Ubuntu 16.04、 python2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据你提供的错误信息,看起来在将字符串转换为浮点数时出现了错误。具体来说,错误信息是"could not convert string to float: 'E_IMFs10'",这意味着在尝试将字符串'E_IMFs10'转换为浮点数时失败了。 根据代码中的描述,你正在尝试从文件'E:\\a科研\\算法实现\\EEMD算法实现集合\\E_IMFs-10.csv'中读取数据,并将其转换为浮点数。然而,在读取数据时,可能存在一些非数字的字符,导致无法将其转换为浮点数。 为了解决这个问题,你可以检查读取的每一行数据,确保只有包含有效数字的行被添加到`ss`列表中。你可以使用`try-except`语句来捕获无法转换为浮点数的行,并跳过这些行。修改后的代码如下所示: ```python import numpy as np def SampEn(U, m, r): # 省略部分代码 if __name__ == '__main__': m = 2 ss = [] for line in open('E:\\a科研\\算法实现\\EEMD算法实现集合\\E_IMFs-10.csv', 'r', encoding='utf-8'): try: float_value = float(line.strip()) ss.append(float_value) except ValueError: continue if len(ss) == 0: print("Error: ss is empty") else: print(SampEn(ss, m, r=0.2 * np.std(ss))) ``` 通过使用`try-except`语句,我们尝试将每一行数据转换为浮点数,并在无法转换时跳过该行。这样可以避免将无效的字符串添加到`ss`列表中,从而解决了无法将字符串转换为浮点数的问题。 请尝试运行这个修改后的代码,并检查是否仍然存在其他错误。如果有任何问题,请提供完整的错误信息以便我进行进一步的排查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值