将不同类型的多个变量写入文本fi

2024-10-02 00:42:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python代码,可以生成具有不同类型和长度的多个变量。我想把所有的东西都写成txt。在

我想保存的所有变量都在一个名为dicvariabledic变量中。 更确切地说,我试图保存的变量是:

dicvariable[0]['VarA'] # variable type int
dicvariable[0]['VarB'] # variable type str
dicvariable[0]['VarC'] # variable type bool
dicvariable[0]['VarD'] # variable type NoneType
dicvariable[0]['VarE'] # variable type list (size can be anything)
dicvariable[0]['VarF'] # variable type dict (itself contains 5 more variables type ndarray)

我要做的第一件事是从dicvariable:中逐个提取变量

^{pr2}$

现在我想打开一个txt文件,把所有这些变量都保存在那里,最好是在以后我可以很容易地在matlab等其他程序中加载txt。 另外,原始的dic变量有nobs个条目(即dicvariable[0], dicvariable[1], (...), divariable(nobs)),所以我想重复这个过程并保存nobstxt文件。在

编辑:

以下是我尝试的结果,结果出现了一个错误:

f = open('file.txt', 'w')
f.write(VarA + '\n' )
f.write(VarB + '\n' )
f.write(VarC + '\n' )
f.write(VarD + '\n' )
f.write(VarE + '\n' )
f.write(VarF1 + '\n' )
f.write(VarF2 + '\n' )
f.write(VarF3 + '\n' )
f.write(VarF4 + '\n' )
f.write(VarF5 + '\n' )
f.close()

Tags: 文件代码txt类型typevariablewritedic
2条回答

尝试搁置模块:https://docs.python.org/2/library/shelve.html

这将把所有变量保存到一个二进制文件的字典中,IIRC。它对于保存程序的设置很有用。在

下面是一个简单的介绍:https://automatetheboringstuff.com/chapter8/转到“使用shelve模块保存变量”部分

问题是这些变量不是文本数据。在将它们写入文本文件之前,需要将它们转换为文本。通常的方法是使用str(myvar)。所以你可以做f.write(str(VarF1) + '\n' )。你可以这样循环:

with open('file.txt', 'w') as f:
    for subdict in dictvariable:
        for value in subdict.values():
            if not hasattr(value, 'values'):
                f.write(str(value)+'\n')
                continue
            for subvalue in value.values():
                f.write(str(subvalue)+'\n')

这可以通过使用生成器来简化:

^{pr2}$

相关问题 更多 >

    热门问题