Skip to content

Instantly share code, notes, and snippets.

@cquest
Last active December 18, 2015 17:11
Show Gist options
  • Save cquest/f9baddf8a0a614b4f946 to your computer and use it in GitHub Desktop.
Save cquest/f9baddf8a0a614b4f946 to your computer and use it in GitHub Desktop.
Exemple de script de download, conversion XLS vers CSV, reformattage et fusion en un unique CSV
# exemple de reformattage automatique de données .xls en .csv
# ce script utilise curl, wget, grep, tail, head ainsi que in2csv, csvcut, csvstat provenant de csvkit
# script écrit par Christian quest - christian.quest@data.gouv.fr
# explications à lire sur https://cquest.hackpad.com/Formats-ouverts-pour-donnes-ouvertes-scriptons-la-conversion-Jw1EVjsWgX3
# récupération des fichiers .xls
curl 'https://www.data.gouv.fr/fr/datasets/53bddb28a3a7292f66115a14/' -s | grep href.*xls -o | grep http.*xls -o | wget -i - --quiet
# extraction première ligne d'entête du fichier csv
for f in *.xls; do in2csv $f | tail -n +5 | head -n 1 | csvcut -C 1 >> temp; done; head -n 1 temp > domaines.csv; rm temp
# conversion des données .xls en csv, élimination des premières lignes inutiles et de la première colonne
for f in *.xls; do in2csv $f | tail -n +6 | csvcut -C 1 >> domaines.csv ; done
# sortie des informations sur le contenu du .csv
csvstat domaines.csv
# géocodage du fichier via adresse.data.gouv.fr
http -f POST http://api.adresse.data.gouv.fr/search/csv/ columns='Adresse' columns='Code Postal' columns='Ville' data@domaines.csv --body --timeout 120 > domaines_geocode.csv
@yoann34
Copy link

yoann34 commented Dec 18, 2015

Bonjour,
La commande http me retourne systématiquement une erreur :

root@vps:~# http -f POST http://api.adresse.data.gouv.fr/search/csv/ columns='Adresse' columns='Code Postal' columns='Ville' data@test.csv --body --timeout 120 > domaines_geocode.csv
usage: http [-h] [--version] [--json | --form] [--traceback]
[--pretty | --ugly] [--headers | --body] [--style STYLE]
[--auth AUTH] [--verify VERIFY] [--proxy PROXY]
[--allow-redirects] [--file PATH] [--timeout TIMEOUT]
METHOD URL [items [items ...]]
http: error: argument items: "data@test.csv" is not a valid value

Je ne comprends pas d'où cela peut venir

Merci par avance

Bonne journée

Edit 18h10 : j'ai trouvé httpie fonctionne bien avec la dernière version 0.9.2 mais pas avec la 0.1.6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment