python腳本構造有部分變動的重複文本


在上一篇博文 同一個docker鏡像,如何拉起多個docker container? 中,涉及到要在docker-compose中構造200個文本片段的場景。
可以使用如下腳本:

#!/usr/bin/env python
f = open("out.txt", "w")

longTxt1 = """
version: '1'
services:
"""
longTxt2 = """
    image: million12/zabbix-agent
"""
longTxt3 = """
    restart: always
    network_mode: "bridge"
    ports:
"""
longTxt4 = """
    volumes:
      - ./zabbix-agentd.conf:/etc/zabbix-agent/zabbix_agentd.conf:ro
      - /proc:/data/proc
      - /sys:/data/sys
      - /dev:/data/dev
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - ZABBIX_SERVER=10.1.1.1
      - CONFIG_FILE=/etc/zabbix-agent/zabbix_agentd.conf
"""

f.write(longTxt1)
for i in range(200):
    f.write("  zabbix-agent" + str(i) + ":")
    f.write(longTxt2)
    f.write("    container_name: zabbix-agent" + str(i).zfill(3))
    f.write(longTxt3)
    f.write("      - \"8" + str(i).zfill(3) + ":10050\"")
    f.write(longTxt4)
    f.write("      - HOST_METADATA=vir" + str(i).zfill(3) + "_sysquery" + "\n")
    f.write("      - HOSTNAME=vir" + str(i).zfill(3))
    f.write("\n\n\n\n")
f.close()

在python腳本中涉及到多段較長的文本處理時,也可以參考以上longTxt的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章