[Je l'ai fait avec Python] Outil pour la sortie par lots de données XML

Je voulais créer facilement des données de test, j'ai donc créé une grande quantité d'outils de création de données de test avec python. Plus précisément, le nom de fichier et le contenu du fichier sont stockés dans tsv, lisez ceci, réécrivez uniquement la balise cible du modèle xml et sortez le fichier xml de test dans un lot.

Préparation du fichier d'entrée

    1. sample.tsv (nom de fichier lors de la sortie et tableau de la partie réécrite) Ceci est un exemple de fichier d'entrée.
FILENAME	SENTENCE
sample_1.xml	ice cream
sample_2.xml	chocolate box
sample_3.xml	candy bar
  1. templete.xml (XML qui est le matériel source pour la sortie) Ceci est un exemple de modèle de sortie.
<root>
  <Text>sweets</Text> 
  <originalText>sweets</originalText> 
  <head>sweets</head> 
</root>

Source de l'outil pour la sortie par lots de données XML

3.exportToXML.py

#!/usr/bin/env python 
import csv 
import xml.etree.ElementTree as ET 
import shutil 
import os 
import glob 
 
 
#Initialiser le dossier de sortie
for file in glob.glob('C:\\tools\\output\\*.xml', recursive=True):
    os.remove(file) 
    
#Obtenir le nom du fichier de déclaration de variable et réécrire le mot
#nom de fichier
fName = "" 
#Et le mot de la réécriture
fDoc = "" 
 
#Ouvrez le fichier tsv d'entrée
tsv_file = open(r"C:\\tools\sample.tsv", "r", encoding="utf-8", errors="", newline="" ) 
#Analyser le fichier avec un lecteur
f = csv.reader(tsv_file, delimiter="\t", doublequote=True, lineterminator="\n", quotechar='"', skipinitialspace=True) 
data = [ v for v in f] 
 
for i in range(len(data)): 
    #Ne pas lire les en-têtes
        if i > 0: 
            fName = (data[i][0]) 
            fDoc = (data[i][1]) 
            fPath = 'C:\\tools\\output\\' + fName 
            #Copiez le modèle.
            shutil.copy('C:\\tools\\templete.xml',fPath) 
            tree = ET.parse(fPath) 
            root = tree.getroot() 
            for name in root.iter('text'): 
                name.text = fDoc 
                print(name.text)
            for hname in root.iter('head'): 
                hname.text = fName 
            tree.write(fPath, encoding='UTF-8') 
        
     

Méthode d'exécution

  1. Placez les fichiers ci-dessus (sample.tsv, templete.xml) dans C: \ tools et créez un dossier ʻoutput` dessous.   py7.png

Exécutez la source de 3 dans l'environnement d'exécution python. La méthode de création / exécution de l'environnement est résumée ici. ■ Procédure de construction de l'environnement de développement Python (anaconda) (SpringToolsSuites) _2020.6 point

Résultat de sortie

Comme indiqué dans la liste des fichiers tsv, j'ai pu modifier le contenu du modèle et générer les fichiers dans un lot.   py8.png

c'est tout.

Recommended Posts

[Je l'ai fait avec Python] Outil pour la sortie par lots de données XML
J'ai fait un blackjack avec du python!
J'ai fait un blackjack avec Python.
J'ai créé wordcloud avec Python.
Traiter les données Pubmed .xml avec python
J'ai créé un démon avec Python
Jeu de vie avec Python [je l'ai fait] (sur terminal et Tkinter)
Traiter les données Pubmed .xml avec python [Partie 2]
J'ai fait un compteur de caractères avec Python
J'ai fait une carte hexadécimale avec Python
J'ai fait un jeu rogue-like avec Python
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait un simulateur de neurones avec Python
J'ai créé un outil pour parcourir automatiquement plusieurs sites avec Selenium (Python)
J'ai créé un outil qui facilite un peu la décompression avec CLI (Python3)
[Python] Python et sécurité-② Outil d'analyse de port réalisé avec Python
J'ai fait une prévision météo de type bot avec Python.
J'ai créé une application graphique avec Python + PyQt5
Outil de rognage d'image GUI réalisé avec Python + Tkinter
J'ai essayé de créer un bloqueur de filles pourries sur Twitter avec Python ①
[Python] J'ai créé un téléchargeur Youtube avec Tkinter.
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de sortir LLVM IR avec Python
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
J'ai fait un jeu de cueillette avec Python
Made Mattermost Bot avec Python (+ Flask)
Analyse de données avec python 2
Analyse de données avec Python
J'ai fait un Twitter BOT avec GAE (python) (avec une référence)
J'ai créé une fenêtre pour la sortie du journal avec Tkinter
J'ai créé une application de notification de nouvelles en ligne avec Python
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
J'ai essayé de faire LINE BOT avec Python et Heroku
Lire le fichier json avec Python, le formater et générer le json
J'ai créé un outil de génération de données texte répétitif "rpttxt"
Je l'ai fait avec le traitement, "Le gars d'Othello live de Sakanaction".
[Python] J'ai créé une fonction qui déchiffre et décrypte AES simplement en le lançant avec pycrypto.
Exemple de données créées avec python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
Je veux pouvoir analyser des données avec Python (partie 3)
Quand j'ai rendu CaboCha disponible en python3, je suis resté bloqué (Windows 10)
J'ai fait un jeu de frappe simple avec tkinter de Python
J'ai essayé de créer diverses "données factices" avec Python faker
J'ai créé un package pour filtrer les séries chronologiques avec python
Générer du XML (RSS) avec Python
Essayez la sortie Python avec Haxe 3.2
Obtenez des données Youtube avec python
J'ai essayé de créer LINE-bot avec Python + Flask + ngrok + LINE Messaging API
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux pouvoir analyser des données avec Python (partie 2)
J'ai créé un serveur avec socket Python et ssl et j'ai essayé d'y accéder depuis le navigateur
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai fait un texte Python
J'ai essayé gRPC avec Python