使用 python 在文件中附加浮点数的最佳方法?

Best way to append a float in a file with python?

我有一个包含多个变量的文件,如下所示:

BTC = 375.23
SOL = 200.42
LTC = 208.91
DOT = 60.12

还有一个主脚本。我如何附加这些值?示例:将 BTC = 375.23 更改为 BTC = 420.32。我使用的方法是:

from varfile import * # imported this way for trial and error
from varfile import BTC # imported this way for trial and error
import varfile

def blah():
    varfile.BTC.append(float(420.32))
blah()

但我收到一个错误:AttributeError: 'float' object has no attribute 'append' 我觉得我只需要以某种方式将 float 转换为 str 但运气不好。 我发现了一些类似的帖子,但没有完全相同的内容,也没有按照我想要的方式工作。

让我稍微澄清一下,也许可以添加一些上下文。 有 2 个文件,一个是我的主脚本,另一个文件包含数据 - 我提到的变量在 varfile.py 中。数据文件不需要是任何特定类型的文件,它可以是 txt 文件或 json,任何东西。 当主脚本是 运行 时,我希望它读取变量 BTCSOL 等的值。在函数中读取并使用这些值后,我想在下次 运行 主脚本时更改这些值。

您收到错误的原因是 varfile.BTC 是一个浮点数。

import varfile

def blah():
    # varfile.BTC = 345.23 which is a float and has no append method
    varfile.BTC.append(float(420.32))  
blah()

如果您的目标是在运行时简单地更改变量的值,这就足够了。

varfile.BTC = 0.1     # or some other value

如果您的目标是更改文件的实际内容,则不应将其保存在 .py 文件中,也不应将其导入您的脚本中。

如果您想更改纯文本文件中的值,它看起来像这样。

BTC = 10 # this is the value you want to change it to
varfile = 'varfile.txt'

with open(varfile, 'rt') as txtfile:
    contents = txtfile.read().split('\n')
    #  contents.append("BTC = " + str(BTC))   # this line is if you just wanted to add a value to the end of the file.
    for i,line in enumerate(contents):
        if 'BTC' in line:
            contents[i] = 'BTC = ' + str(BTC)
            break

with open(varfile, "wt") as wfile:
    wfile.write('\n'.join(contents))