python - 在 Python 中读取文件并转换为 float

标签 python

我想打开一个 .txt 文件进行读写,将内容保存到一个变量中,然后将该变量转换为 float 类型。将 str 类型变量转换为 float 类型时,我收到 ValueError: could not Convert string to float: ''

file = open("my_file.txt", "r+")
value = file.read()
float_value = float(value) 

我的理解是,如果 .txt 为空,我将收到错误。如果 .txt 包含数字并且使用“r”,则不会出现错误。但是,我想读取和写入该文件,如果我使用 w+ 或 r+,它会自动删除 .txt,从而不允许转换。

如何打开文件进行读写,使其不会删除.txt的内容?

我在类似的线程中发现了这个问题,并尝试了以下解决方案,但它对我不起作用。

with open('my_file.txt', 'w+') as file:
    file.seek(0)
    value = file.read()
    float_value = float(value) 

更新:

我通过在 .txt 中以 0 开头,然后暂时解决了该问题:

  1. 在“r”中打开文件
  2. 将值存储在变量中
  3. 将存储的 str 值转换为 float
  4. 关闭文件

  5. 再次打开文件,但这次为“w”(.txt 被删除,但我的值已存储在浮点变量中)

  6. 对浮点变量执行任何计算。
  7. 将新值转换为 str 类型。
  8. 将新值作为 str 写入 .txt

我希望 r+ 或 w+ 能够让我执行这些操作,而不必打开和关闭文件两次。如果我找到更容易实现的解决方案,我将进行第二次更新。

这是临时解决方案:

file = open("my_file.txt", "r")
value = file.read()
float_value = float(value)
file.close()

new_number = 5.5

file = open("my_file.txt", "w")
new_value = float_value + new_number
str_value = str(new_value)
file.write(str_value)
file.close()

更新2:

我收到了一个可行的解决方案,它已在下面的评论中标记。

最佳答案

这是最终的解决方案:

您可以最小化代码行:

file = open("fileName.txt", "r+")
value = file.readlines()
for i in value:
    file.seek(0)
    file.write(str(float(i)+value you want to add))

关于python - 在 Python 中读取文件并转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59630084/

相关文章:

python - PyDev 中单元测试的初始化?

python - 在 Django 中重新保存模型实例不起作用,但 update() 确实起作用

Python:导入 textblob 库时出错

python导入模块在全局范围内工作

python - 使用 Paramiko (Python) 通过 SSH 执行 smartctl 命令时没有输出

python - 发送 SIGINT 后从子进程捕获标准输出

python - 为什么 9007199254740993 != 9007199254740993.0?

python - 无法安装 tensorflow 压缩

python - 在 Python 中分配函数

python - 为什么我收到 AttributeError : 'LinearRegressionGD' object has no attribute 'n_iter'