Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier

J'ai dû ajouter beaucoup de ressources avec terraform, donc c'était difficile à copier et coller, donc c'est un mémo.

Tout d'abord, préparez un fichier modèle. Définissez l'emplacement où vous souhaitez créer une variable sur @ NAME @ @ PATH @ @ HOST @.

template.tf


resource "google_monitoring_uptime_check_config" "@NAME@" {
  display_name = "@NAME@"
  timeout      = "10s"

  http_check {
    use_ssl = true
    path    = "@PATH@"
    port    = "443"
  }

  monitored_resource {
    type = "uptime_url"

    labels = {
      project_id = var.project_id
      host       = "@HOST@"
    }
  }
}

Créez la valeur que vous souhaitez transmettre à la variable avec csv.

source.csv


aaa_bbb_com,/,aaa.bbb.com
aaa_bbb_jp,/hoge,aaa.bbb.jp
aaa_bbb_co_jp,/hage,aaa.bbb.co.jp

Exécutez python


# python mkfile.py source.csv template.txt

C'est l'un des fichiers créés

resource "google_monitoring_uptime_check_config" "aaa_bbb_co_jp" {
  display_name = "aaa_bbb_co_jp"
  timeout      = "10s"

  http_check {
    use_ssl = true
    path    = "/hage"
    port    = "443"
  }

  monitored_resource {
    type = "uptime_url"

    labels = {
      project_id = var.project_id
      host       = "aaa.bbb.co.jp"
    }
  }
}

Si vous souhaitez combiner les fichiers,

cat create* > result.tf

Code exécuté

mkfile.py


# -*- coding: utf-8 -*-
import os, sys ,csv

def mkFile(srcFname, tmplFname):
    with open(srcFname) as c:
        reader = csv.reader(c)
        for row in reader:
            f1 = open(tmplFname, "r")
            f2 = open("create" + row[0] + ".txt", "w")
            for row2 in f1:
                temp = row2.replace("@NAME@", row[0]) \
                          .replace("@PATH@", row[1]) \
                          .replace("@HOST@", row[2]) 
                f2.write(temp)
            f1.close
            f2.close

    
if __name__ == '__main__': 
    if(len(sys.argv)!=3):
        print("usage: python mkfile.py source.csv template.tf")
    
    srcFname = sys.argv[1]
    tmplFname = sys.argv[2]

    #start func
    mkFile(srcFname, tmplFname)
    
    print("finished")

point

                temp = row2.replace("@NAME@", row[0]) \
                          .replace("@PATH@", row[1]) \
                          .replace("@HOST@", row[2]) 

Recommended Posts

Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
[Python] Lorsque vous souhaitez utiliser toutes les variables dans un autre fichier
Je veux afficher la progression en Python!
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
Je veux échantillonner au hasard un fichier avec Python
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Je veux connaître la nature de Python et pip
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
Je veux créer un fichier pip et le refléter dans le menu fixe
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Je veux faire le test de Dunnett en Python
Je veux créer une fenêtre avec Python
Pour remplacer dynamiquement la méthode suivante en python
Je veux écrire dans un fichier avec Python
Le fichier édité avec vim était en lecture seule, mais je veux le sauvegarder
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
Je veux écrire un élément dans un fichier avec numpy et le vérifier.
Notez que je comprends l'algorithme des moindres carrés. Et je l'ai écrit en Python.
Je veux écrire en Python! (1) Vérification du format de code
Je veux voir le nom de fichier de DataLoader
J'ai essayé de représenter graphiquement les packages installés en Python
Je veux facilement implémenter le délai d'expiration en python
Modèle de script python pour lire le contenu du fichier
Je veux gérer l'optimisation avec python et cplex
Je veux écrire en Python! (2) Écrivons un test
Même avec JavaScript, je veux voir Python `range ()`!
Lisez le fichier csv et affichez-le dans le navigateur
Je veux hériter de l'arrière avec la classe de données python
Je veux travailler avec un robot en python.
Python: peut être répété en lambda
Je veux faire quelque chose avec Python à la fin
Je veux manipuler des chaînes dans Kotlin comme Python!
Je veux juste trouver l'intervalle de confiance à 95% de la différence de ratio de population en Python
Il est facile d'exécuter SQL avec Python et de générer le résultat dans Excel
Essayez de le faire avec GUI, PyQt en Python
Je veux initialiser si la valeur est vide (python)
Je souhaite spécifier une autre version de Python avec pyvenv
maya Python Je veux réparer à nouveau l'animation cuite.
Je veux faire quelque chose comme sort uniq en Python
Changer la destination de sortie standard en un fichier en Python
Obtenez le type MIME en Python et déterminez le format de fichier
Afficher les nombres et les caractères affectés aux variables dans l'impression python
J'ai essayé d'illustrer le temps et le temps du langage C
[Python] Je souhaite utiliser l'option -h avec argparse
[Python] J'ai installé le jeu depuis pip et j'ai essayé de jouer
J'ai essayé de programmer le test du chi carré en Python et Java.
Je l'ai écrit en langage Go pour comprendre le principe SOLID
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai essayé d'énumérer les différences entre java et python
Je veux rendre le type de dictionnaire dans la liste unique