Ce document décrit comment traiter plusieurs fichiers JSON en une seule opération, en utilisant les différentes versions du script Transibase.
- Traitement sous Linux/macOS (Bash)
- Traitement sous Windows (PowerShell)
- Traitement sous Windows (Batch)
- Automatisation et planification
Les exemples suivants traitent tous les fichiers JSON du dossier courant et génèrent un fichier CSV pour chacun.
for file in *.json; do
output="${file%.json}.csv"
node transibase_dgeq_convert.js "$file" "$output"
donefor file in *.json; do
output="${file%.json}.csv"
npx ts-node transibase_dgeq_convert_node.ts "$file" "$output"
donefor file in *.json; do
output="${file%.json}.csv"
deno run --allow-read --allow-write transibase_dgeq_convert_deno.ts "$file" "$output"
donefor file in *.json; do
output="${file%.json}.csv"
bun transibase_dgeq_convert_bun.ts "$file" "$output"
donefor file in *.json; do
output="${file%.json}.csv"
php transibase_dgeq_convert.php "$file" "$output"
donefor file in *.json; do
output="${file%.json}.csv"
python3 transibase_dgeq_convert.py "$file" "$output"
donefor file in *.json; do
output="${file%.json}.csv"
go run transibase_dgeq_convert.go "$file" "$output"
donePour traiter tous les fichiers JSON mais ne garder que les transactions d'une année spécifique:
# Exemple avec Node.js (mais adaptable à tous les runtimes)
for file in *.json; do
output="${file%.json}_2024.csv"
node transibase_dgeq_convert.js "$file" "$output" 2024
done# Exemple avec Python (mais adaptable à tous les runtimes)
for file in ./donnees/*.json; do
filename=$(basename "$file")
output="./rapports/${filename%.json}.csv"
python3 transibase_dgeq_convert.py "$file" "$output"
doneSi vous préférez utiliser la version compilée de Go pour de meilleures performances:
# Compiler d'abord
go build transibase_dgeq_convert.go
# Traiter les fichiers
for file in *.json; do
output="${file%.json}.csv"
./transibase_dgeq_convert "$file" "$output"
doneforeach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
node transibase_dgeq_convert.js $file.Name $output
}foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
npx ts-node transibase_dgeq_convert_node.ts $file.Name $output
}foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
wsl bun ./transibase_dgeq_convert_bun.ts $file.Name $output
}foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
php transibase_dgeq_convert.php $file.Name $output
}foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
python transibase_dgeq_convert.py $file.Name $output
}foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
go run transibase_dgeq_convert.go $file.Name $output
}# Exemple avec Node.js (JavaScript)
foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + "_2024.csv"
node transibase_dgeq_convert.js $file.Name $output 2024
}# Exemple avec PHP
foreach ($file in Get-ChildItem -Path "C:\Données\JSON" -Filter "*.json") {
$output = "C:\Rapports\" + $file.BaseName + ".csv"
php transibase_dgeq_convert.php $file.FullName $output
}# Compiler d'abord
go build transibase_dgeq_convert.go
# Traiter les fichiers avec l'exécutable
foreach ($file in Get-ChildItem -Filter "*.json") {
$output = $file.BaseName + ".csv"
.\transibase_dgeq_convert.exe $file.Name $output
}Si vous préférez utiliser des fichiers batch (.bat) sous Windows:
@echo off
setlocal enabledelayedexpansion
REM Traiter tous les fichiers JSON du dossier courant
for %%f in (*.json) do (
set "filename=%%~nf"
echo Traitement de %%f...
node transibase_dgeq_convert.js "%%f" "!filename!.csv"
)
echo Traitement terminé.
pauseVous pouvez remplacer node transibase_dgeq_convert.js par la commande appropriée pour votre environnement d'exécution préféré.
Pour exécuter le traitement automatiquement à intervalle régulier, vous pouvez utiliser cron:
- Créez un script shell
process_donations.sh:
#!/bin/bash
# Définir les chemins
INPUT_DIR="/home/user/donations/json"
OUTPUT_DIR="/home/user/donations/csv"
LOG_FILE="/home/user/donations/process.log"
# Créer le dossier de sortie si nécessaire