我想打开一个 .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 开头,然后暂时解决了该问题:
- 在“r”中打开文件
- 将值存储在变量中
- 将存储的 str 值转换为 float
关闭文件
再次打开文件,但这次为“w”(.txt 被删除,但我的值已存储在浮点变量中)
- 对浮点变量执行任何计算。
- 将新值转换为 str 类型。
- 将新值作为 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/