Skip to content

Instantly share code, notes, and snippets.

@RCura
Created November 12, 2012 15:23
Show Gist options
  • Save RCura/ebdbf62d0a72b8493632 to your computer and use it in GitHub Desktop.
Save RCura/ebdbf62d0a72b8493632 to your computer and use it in GitHub Desktop.
Script Python (pour Emeric) pour supprimer une colonne d'un CSV
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 19 20:58:18 2012
@creation : 2012-07-19
@author : Robin Cura
@email : robin.cura@gmail.com
"""
# Chemin vers le CSV à traiter
myCsvFilePath = "D:\\place_livraison.csv"
separator = ";"
# Nom de la colonne à supprimer
columnToDeleteName = "NUMVOI"
import csv
import os
myTempOutputFile = myCsvFilePath.replace(".csv", "_tmp.csv")
inFile = open(myCsvFilePath)
inCSV = csv.reader(inFile, delimiter=separator)
# On commence par rechercher le numero de la colonne à supprimer
firstRow = inCSV.next()
columnIndex = firstRow.index(columnToDeleteName)
inFile.close()
# On va maintenant recopier toutes les lignes du CSV
# dans un nouveau CSV en supprimant la colonne en question
inFile = open(myCsvFilePath)
inCSV = csv.reader(inFile, delimiter=separator)
outFile = open(myTempOutputFile, 'w+')
outCSV = csv.writer(outFile, delimiter=separator, quoting=csv.QUOTE_NONNUMERIC)
for row in inCSV:
# Ici, petite feinte pk Python copie par référence,
# donc on prend la valeur de la ligne
# et non la ligne directement
currentRow = row[:]
currentRow.pop(columnIndex)
outCSV.writerow(currentRow)
inFile.close()
outFile.close()
# Là, j'ai créé un csv en plus pour ne pas pêter l'original
# Si, après tes tests, tout fonctionne, tu peux décommenter
# les lignes suivantes :
# On supprime le CSV original
#os.remove(myCsvFilePath)
# On renomme le nouveau CSV avec le nom de l'ancien
#os.rename(myTempOutputFile, myCsvFilePath)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment