0
yamlの値を「保留中」のファイルに更新するツールを作ろうとしていました。それは作業を行いますが、私はそれがこのようにフォーマットする必要がありますyaml.dumpがdictにダンプしていますが、そのようにしたくありません
fields: {WishName: ("name"), WishNameState: ("APPROVED"), setName: ("name")}
は、どのように私はそれが私が望む形式でダンプすることができます:
fields:
setName: ("name")
WishName: ("name")
WishNameState: ("PENDING")
しかし、それはこの形式でそれをダンプしたいですそれは? は、ここに私のコードですので、あなたは、私は現在、それをやっている方法を知っている:任意およびすべてのヘルプは高く評価され
import glob
import os
import yaml
def processFile(f,t):
data = open(f,'rb').read()
lines = data.replace('\r\n','\n').split('\n')
lines_found = []
for i,x in enumerate(lines):
if t in x:
lines_found.append(i+1)
return lines_found
term = 'PENDING'
for x in glob.glob('*.yaml'):
r = processFile(x,term)
if r:
with open(x) as f:
yamlfile = yaml.load(f)
fields = yamlfile['fields']
name = fields['WishName']
print('Name: ' + name)
print('Approve or reject?')
aor = raw_input('a/r: ')
if aor == 'a':
fields['setName'] = name
fields['WishNameState'] = '("APPROVED")'
with open(x, "w") as f:
yaml.dump(yamlfile, f)
elif aor == 'r':
fields['WishNameState'] = '("REJECTED")'
with open(x, "w") as f:
yaml.dump(yamlfile, f)
else:
'Invalid response. Shutting down...'
sys.exit()
print('End of results!')
を!あなたのコードに感謝:)
コードは、yamlファイルを期待どおりに変更します。どうしましたか? – falsetru
同様の質問http://stackoverflow.com/a/18210750/5781248 –
@falsetru、問題は、それがダンプされるときに別の方法でフォーマットされることです。それはすべてを辞書に変換します。しかし、それは 'fields:{setName:(" Hey ")、WishName:(" Hi ")のようにダンプします。 )} 'それをやりたいとは思わない。 – Developre