[PYTHON] J'ai créé un outil de génération de données texte répétitif "rpttxt"

Qu'est-ce que rpttxt?

Il est distribué ici (https://github.com/nendo-code/rpttxt).

Par exemple, supposons que vous souhaitiez créer des données comme celles-ci.

output.txt


{
	"id": 1,
	"name": "John",
	"age": 21
}
{
	"id": 2,
	"name": "Paul",
	"age": 35
}
{
	"id": 3,
	"name": "Tom",
	"age": 64
}

Que feriez-vous si vous créiez ces données? Je pense que ce serait comme ça si je pouvais le faire manuellement.

Tout d'abord, créez un article.

step1.txt


{
	"id": 1,
	"name": "John",
	"age": 21
}

Copiez et collez autant d'éléments que vous le souhaitez.

step2.txt


{
	"id": 1,
	"name": "John",
	"age": 21
}
{
	"id": 1,
	"name": "John",
	"age": 21
}
{
	"id": 1,
	"name": "John",
	"age": 21
}

3. Réécrivez la valeur de chaque élément à la valeur cible.

step3.txt


{
	"id": 1,
	"name": "John",
	"age": 21
}
{
	"id": 2,
	"name": "Paul",
	"age": 35
}
{
	"id": 3,
	"name": "Tom",
	"age": 64
}

Vous pouvez le faire manuellement comme ça, mais s'il y a de nombreux cas, il est facile de faire des erreurs. J'ai pensé que ce serait bien si les données pouvaient être écrites séparément et le modèle pourrait être écrit séparément. Alors

Rédiger un modèle

template.txt


{
	"id": {No},
	"name": "{Name}",
	"age": {Age}
}

Écrivez les données en csv (ou exportez-les en csv avec Excel etc.)

data.csv


{No},{Name},{Age}
1,John,21
2,Paul,35
3,Tom,64

J'ai créé un programme qui donne la sortie suivante lorsque vous les alimentez. C'est rpttxt.

output.txt


{
	"id": 1,
	"name": "John",
	"age": 21
}
{
	"id": 2,
	"name": "Paul",
	"age": 35
}
{
	"id": 3,
	"name": "Tom",
	"age": 64
}

Pourquoi avez-vous réussi?

J'ai senti qu'il pouvait y avoir un outil similaire au monde, mais je ne pouvais pas trouver celui avec la sensation de fonctionnement souhaitée, alors j'ai réinventé la roue. Aussi, j'ai lu le livre "L'idée d'UNIX - son concept de conception et sa philosophie" et j'ai pensé que c'était merveilleux, alors j'en ai fait un outil de ligne de commande avec une interface simple comme celle-là.

(Exemple) Exécution sur la ligne de commande

$ python3 rpttxt.py template.txt data.csv > output.txt

Qu'avez-vous fait?

Ecrit en python3, le binaire pour Windows a été réalisé avec PyInstaller. PyInstaller est un outil simple et très efficace. De plus, comme il est ennuyeux de démarrer la ligne de commande sous Windows, j'ai également ajouté un fichier batch à convertir en un seul coup en prime.

Recommended Posts

J'ai créé un outil de génération de données texte répétitif "rpttxt"
J'ai fait un texte Python
J'ai créé un outil d'estampage automatique du navigateur.
J'ai créé un outil utile pour Digital Ocean
J'ai créé un outil de collecte de configuration de routeur Config Collecor
J'ai créé un outil pour compiler nativement Hy
J'ai créé un outil pour obtenir de nouveaux articles
〇✕ J'ai fait un jeu
Je viens de créer un outil pour afficher facilement les données sous forme de graphique par opération GUI
Création de l'outil de gestion des utilisateurs Let's Chat
J'ai créé un outil de nettoyage pour Google Container Registry
J'ai fait un robot discord
J'ai créé un outil pour créer un nuage de mots à partir de wikipedia
[Je l'ai fait avec Python] Outil pour la sortie par lots de données XML
[Titan Craft] J'ai créé un outil pour invoquer un géant sur Minecraft
J'ai créé un site d'apprentissage C ++
Puis-je être un data scientist?
J'ai fait un Line-bot avec Python!
J'ai créé un script de traduction basé sur CUI (2)
J'ai fait un wikipedia gacha bot
J'ai fait une loterie avec Python.
Création d'un outil CLI client / serveur WebSocket (comme WebSocket version netcat)
J'ai créé un script de traduction basé sur CUI
Impressions de toucher Dash, un outil de visualisation de données réalisé par python
J'ai essayé de créer un outil d'échafaudage pour le framework Web Python Bottle
J'ai créé un démon avec Python
J'ai créé un outil pour parcourir automatiquement plusieurs sites avec Selenium (Python)
[Mise à jour Ver1.3.1] J'ai créé une bibliothèque de prétraitement de données DataLiner pour l'apprentissage automatique
J'ai créé un outil CLI pour convertir les images de chaque répertoire en PDF
J'ai fait une sorte d'outil de traitement d'image simple en langage Go.
J'ai créé un outil pour convertir Jupyter py en ipynb avec VS Code
J'ai créé un outil qui facilite un peu la décompression avec CLI (Python3)
J'ai créé un package comme le dictionnaire pop-up Weblio anglais-japonais avec Sublime Text3
J'ai créé un nouveau compartiment AWS S3
J'ai fait un programme de gestion de la paie en Python!
J'ai touché "Orator" alors j'ai fait une note
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
Remarques sur la création d'outils de mise en forme de texte
J'ai fait un interlocuteur comme Siri
J'ai fait un script pour afficher des pictogrammes
J'ai fait une carte hexadécimale avec Python
J'ai fait un générateur Hanko avec GAN
J'ai touché à l'outil de préparation de données Paxata
Après avoir étudié Python3, j'ai créé un Slackbot
J'ai créé un outil de mot de passe en 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 une bibliothèque pour l'assurance actuarielle
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
J'ai fait un outil pour estimer le temps d'exécution de cron (+ débuts de PyPI)
J'ai créé un outil pour corriger les données GPS avec l'API Map Matching de Mapbox (Mapbox Map Matching API)
J'ai créé un outil pour informer Slack des événements Connpass et en ai fait Terraform
J'ai créé un outil pour générer du Markdown à partir du fichier JSON Scrapbox exporté
J'ai créé un outil pour sauvegarder automatiquement les métadonnées de l'organisation Salesforce
J'ai fait un robot de remplacement de tampon avec une ligne
J'ai créé un fichier de dictionnaire python pour Neocomplete
J'ai fait une prévision météo de type bot avec Python.