这是我的第一个问题,对不起我的英语。

我已经搜索过,但是,我不知道如何搜索,我尝试了不同的方式和关键字,但是什么也没有。

问题是这样的:

我正在用Python在Blender中做一些脚本,我想使用配置解析器保存和加载项目,等等。但是例如,如果我要保存颜色,则在Blender中是4个浮动位置的Vector,将矢量在带有config解析器的文件中,它明显地在文件中保存了一个字符串,例如(变量​​config是所有config解析器的东西):

vector_color = [ 0.1, 0.8, 0.2, 1.0 ]
config.set("section", "item", vector_color)


它会保存这个:


  [部分]
  item =


这是一件好事,因为它存储矢量,但是现在..问题是,我想加载矢量,我该怎么做?多数民众赞成在我的问题,因为如果我像矢量加载它,它是一个字符串,所以..我如何可以再次将其转换为矢量?我用eval(),literal_eval(),config.read_string()证明,我不知道我用许多可能的函数证明。

因此,用更少的词:

我如何转换此字符串:

"<Vector (0.1, 0.8, 0.2, 1.0)>"


到这个向量

[0.1, 0.8, 0.2, 1.0]

最佳答案

如果需要保存实际对象-保存列表而不是其中包含字符“ [1、2、3]”的文件-我强烈建议您查看pickle

import pickle

my_list = [1, 1, 2, 3, 5]
pickled_list = pickle.dumps(my_list)
f = open('my_file.py', 'w')
f.write(pickled_list)
f.close()

#a wild coding appears...
#you used python... it's super effective

f = open('my_file.py', 'r')
read_file = f.read()
my_loaded_list = pickle.loads(read_file)
f.close()

my_loaded_list ##should be the list you just saved


“挑剔”很棒。查看官方Python文档。

关于python - 将矢量转换为字符串,保存在文件中,然后再次转换为矢量? python ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22056450/

10-12 17:03