1
我試圖理清與Python YAML文件看起來像這種行塊:閱讀和YAML文件在python
........
........
........
# comment
ip address/20:
datacenter: x
context: y
# comment
ip address/32:
datacenter: a
context: b
# comment
ip address/24:
datacenter: x
context: z
# comment
ip address/16:
datacenter: a
context: b
........
........
........
該文件是很長。我可以實現閱讀與蟒蛇的文件,但我想排序出把根據CIDR標記塊:
........
........
........
# comment
ip address/16:
datacenter: a
context: b
# comment
ip address/20:
datacenter: x
context: y
# comment
ip address/24:
datacenter: x
context: z
# comment
ip address/32:
datacenter: a
context: b
........
........
........
有沒有辦法做到這一點,而讀取文件:
import yaml
with open("file.yml", 'r') as stream:
try:
print(yaml.load(stream))
except yaml.YAMLError as err:
print(err)
或者我應該逐行讀取文件?非常感謝。
一旦你調用'yaml.load(stream)'你有(在這種情況下)一個Python字典,在這一點上,它不再是一個YAML問題。你真的只是問,「我怎麼在字典中打印這些項目,按照它們的關鍵字排序?」,對此,有很多資源。 [netaddr](https://pypi.python.org/pypi/netaddr)模塊可能對解析CIDR ntoation有幫助。 – larsks
@larsks,謝謝你,我來看看。 – Max