python - 字符串 '-1' 无法转换为 float

标签 python string-conversion

我尝试从使用 utf-8 编码打开的文本文件中读取大量数字。 文本文件是 pdf 的复制/粘贴。 问题在于负数(-1、-2 等): 我删除了所有内容,因此各个字符串位如下所示:-1-2

然后我想用它们计算并用float()转换它们,但是我得到一个错误:

can't convert string to float: '-1'

我得出结论,'-' 可以被解释为一个长的 '-',无论它被称为什么,并在文本文件中手动将其替换为 '-'。现在它适用于这个单一的字符串,float() 转换它。 我编写了一个小脚本,用于在文本文件中查找并替换所有 '-''-',但这没有用。

with open('text.txt', encoding='utf8') as fobj:
    all = []
    for line in fobj:
        line = line.strip()
        if '-' in line:
            line.replace('-','-')
            print('replaced')
        all.append(line)
with open('text2.txt','w',encoding='utf8') as f:
    for i in all:
        print(i)
        f.write(i)
        f.write('\n')

为什么我可以手动将 '-' 替换为 '-' 而不能使用此脚本? 感谢您的帮助。

从文本文件中截取的示例:

/ 11/3 / 2 / 0 / 0/–1 /
/ 11/5 / 0 / 2 / 0/0 / N
/ 12/3 / 1 / 0 / 0/0 /
/ 12/4 / 1 / 1 / 0/0 / NS

/ 12/4 / 4 / –1 / 0/–1 / H

/ 12/5 / 1 / 0 / 0/–1 / H

/ 12/5 / 2 / 0 / 0/-1 / H

/ 11/4 / 0 / 0 / 0/0 / H

其实可以看出倒数第二行和倒数第三行-1的区别。在这个副本中。我手动替换了最后一个。

最佳答案

您错过了作业

if '-' in line:
    line = line.replace('-','-')
    print('replaced') 

关于python - 字符串 '-1' 无法转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53276427/

相关文章:

javascript - 将 JavaScript 字符串变量转换为小数/货币

python - 设计一个专门用于渲染文本的开源 OCR 引擎(截图)

arrays - swift 3 : How can I get the Array from the String

.net - 如何将注册表中的 REG_BINARY 值转换为字符串? (vb.net)

arrays - APL/APLX - 拆分字符串

C# 在语言环境中将字符串转换为 double

python - 为什么使用python split时字符串会改变?

python - 有没有一种简单的方法可以在绘图中将 3d 网格旋转 90 度?

python - pytest 'ImportError: No module named YadaYadaYada' 的 PATH 问题

python - Django 部署服务器仅使用 uWSGI 提供静态文件