vous pouvez utiliser le module csv pour faire le levage de charges lourdes: http://docs.python.org/library/csv.html
vous ne dites pas comment vous vouliez exactement de fusionner les colonnes; vous ne voulez probablement pas que votre champ fusionné soit "déplacé de Portland, CTgoo". Le code ci-dessous vous permet de spécifier une chaîne de séparateur (peut-être ", "
) et gère les champs vides/vides.
[transcript of session]
prompt>type merge.py
import csv
def merge_csv_cols(infile, outfile, startcol, numcols, sep=", "):
reader = csv.reader(open(infile, "rb"))
writer = csv.writer(open(outfile, "wb"))
endcol = startcol + numcols
for row in reader:
merged = sep.join(x for x in row[startcol:endcol] if x.strip())
row[startcol:endcol] = [merged]
writer.writerow(row)
if __name__ == "__main__":
import sys
args = sys.argv[1:6]
args[2:4] = map(int, args[2:4])
merge_csv_cols(*args)
prompt>type input.csv
1,2,3,4,5,6,7,8,9,a,b,c
1,2,3,4,5,6,,,,a,b,c
1,2,3,4,5,6,7,8,,a,b,c
1,2,3,4,5,6,7,,9,a,b,c
prompt>\python26\python merge.py input.csv output.csv 6 3 ", "
prompt>type output.csv
1,2,3,4,5,6,"7, 8, 9",a,b,c
1,2,3,4,5,6,,a,b,c
1,2,3,4,5,6,"7, 8",a,b,c
1,2,3,4,5,6,"7, 9",a,b,c
@ S. Lott: Désolé de perturber la pomme-panier, mais en fait la lecture du code révèle ce résultat sera un tuple de 3 éléments dont la première et la troisième sera la liste ... par conséquent la sortie être un méli-mélo. –
@ 9upvoters: ???? –