python - float() : 0. 000001 的无效文字,如何修复错误?

标签 python csv floating-point literals

我有一个包含 3 列数据的 .csv 文件。我需要创建一个新的输出文件,其中包含来自原始文件第一列和第三列的一组特定数据。第三列包含十进制值,我相信在这种情况下我使用了 python 的 float() 特性。我尝试了以下代码:

in_file = open("filename.csv", "r")

out_file = open("output.csv", "w")

while True:

    line = in_file.readline()
    if (line == ''): 
        break
    line = line.strip() 
    items = line.split(',') 
    gi_name = items[0] 
    if (gi_name.startswith("_"))
        continue
    p_value = float(items[2]) 
    if (p_value > 0.05):
        continue
    out_file.write(','.join([gene_name, str(p_value)]))
in_file.close()
out_file.close()

当我运行上面的命令时,我收到以下错误:

错误:float() 的无效文字:0.000001

值 0.0000001 是我数据集中第三列的第一个值,我猜代码无法读取超出该集合的值,但我不确定为什么。我是 python 的新手,并不真正理解为什么会出现此错误或如何修复它。我尝试了其他关于如何输入 float() 的修改,但没有成功。有谁知道我该如何解决这个问题?

最佳答案

从您发布的内容来看,您试图传递给 float() 的字符串是否存在细微的错误并不清楚(因为它看起来完全合理)。尝试添加调试打印语句:

print(repr(items[2]))
p_value = float(items[2])

然后您可以准确地确定传递给 float() 的内容。调用 repr() 甚至可以使通常不可见的字符可见。将结果添加到您的问题中,我们将能够进一步发表评论。

关于python - float() : 0. 000001 的无效文字,如何修复错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9917294/

相关文章:

c - 用于保持浮点值精度的 Printf 宽度说明符

python - 为什么 -0.0 与 0.0 不同?

python - Python 文档中 "mixin methods"的含义

python - 使用 BeautifulSoup Python 拉取相邻的表格单元格

csv - 将应用程序移动到新服务器后,使用 CsvHelper 库生成的 CSV 文件中缺少逗号/分隔符

Android Intent选择CSV导入

c# - Visual C# 方法调用使用过多内存?

Python-列表加起来不正确?

具有重复键的 python3 csv + python defaultdict

java - csvReader 跳过了 while 循环