Python 如何将值从一个yaml文件替换到另一个yaml文件?
我试图将特定字段中的一些值从一个YAML文件替换为另一个YAML文件 我有两个不同的文件夹结构Python 如何将值从一个yaml文件替换到另一个yaml文件?,python,regex,string,replace,yaml,Python,Regex,String,Replace,Yaml,我试图将特定字段中的一些值从一个YAML文件替换为另一个YAML文件 我有两个不同的文件夹结构 ├── helm -> root folder ├── accounting-pl.yaml ├── Chart.yaml ├── charts ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml
├── helm -> root folder
├── accounting-pl.yaml
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
└── unplse
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
....... and so son
及
在values.yaml文件中有一个字段replicaCount:1
在每个YAML文件(如ds-ss-m7fb269.YAML
(在YAML根文件夹内)中,都有一个字段desiredCount:x
如何获取此字段的值desiredCount
并粘贴到replicaCount
?例如,replicaccount:44
我尝试了很多事情,但都失败了。这就是我到目前为止所尝试的
def get_replicaCount():
for root, dir, files in os.walk('.', topdown=False):
for name in files:
if name == "values.yaml":
with open(os.path.join(root, name), 'rt') as helm:
try:
lyamls = yaml.safe_load(helm)
print(lyamls['replicaCount'])
except Exception as err:
print(err)
它打印所有的replicaCount
值
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
……等等
def get_desiredCount():
for i in os.listdir(path):
with open('yaml/' + i, 'r') as f:
loaded = yaml.safe_load(f)
print(loaded['service']['desiredCount'])
获取所有desiredCount
值并打印它们
4
3
9
12
and so son...
我如何替换这些值?不清楚给定的
值。yaml
文件如何映射到yaml
目录中的yaml文件。我想知道为什么您的两个python段都是无效代码,为什么您的两个根文件夹都未插入,但您可能没有尝试格式化按钮或帮助,要获得整个块的适当缩进(选择块,按Ctrl+K)。请查看我的编辑,看看它是否代表您想要的内容。1)YAML具有带有键和关联值的映射,而不是“字段”;2) desiredCount
和replicaCount
是键,而不是值(数字是值);3) 看起来键desiredCount
的值比values.yaml
文件的值多得多,如果是,您希望如何替换它们?或者是否有与根文件夹下的文件数量完全相同的value.yaml
文件?根文件夹下的每个*.yaml文件的value.yaml文件数量完全相同。
4
3
9
12
and so son...