我必须在yaml文件中替换这些标签。
以前被替换的数据存储在一个列表中。
我有这个YAML文件
vagrantfile:
target: local
vm:
provider:
local:
box: puphpet/ubuntu1404-x<BITS> # MEERKEUZE: 32 OF 64, STANDAARD 64
box_url: puphpet/ubuntu1404-x<BITS> # MEERKEUZE: 32 OF 64, STANDAARD 64
box_version: '0'
chosen_virtualizer: <virtualiser> # MEERKEUZE: virtualbox OF vmware, STANDAARD 64
virtualizers:
virtualbox:
modifyvm:
natdnshostresolver1: false
showgui: 0
vmware:
numvcpus: 1
parallels:
use_linked_clone: 0
check_guest_tools: 0
update_guest_tools: 0
machines:
vflm_7orc03npv15g:
id: <ID> # STRING
hostname: <HOSTNAME> # STRING
network:
private_network: <IP-ADDRESS> #lOKAAL IP, STANDARAARD 192.168.50.101
forwarded_port:
hon1d:
host: '80'
guest: '80'
memory: '<MEGABYTES>' # AANTAL, STANDAARD VEELVOUD VAN 1024
cpus: '<CORES>' # AANTAL CPUS, STANDAARD AANTAL CORES - 1, NIET HOGER DAN AANTAL CORES
我能做些什么来改变这些标签?在
可能最容易使用pyyaml。E、 g.要设置
cpus
值:唯一的问题是这样你会失去评论。在
您应该在YAML级别执行此操作,以确保如果您的替换强制引用结果字符串,则会发生这种情况。E、 如果您的
<ID>
需要被@abc
之类的东西替换,那么YAML文件中的实际行需要变成而不是
^{pr2}$因为
@
是保留的。有几个这样的警告,所以在字符串级别替换不是一个好主意。在您可以:
这会给你:
请注意:
cpus
和memory
的值是整数,而不是字符串id
的值被正确引用。在上面使用^{} :免责声明我是该包的作者。你可以用PyYAML做同样的事情,但是你会失去评论,你需要限制自己使用yaml1.1标准(从2005年开始),而不是yaml1.2标准(从2009年开始)
您可以将yaml转换为字符串模板,并使用字符串格式来实现这一点
相关问题 更多 >
编程相关推荐