2010-11-01 4 views
2

Je tente d'écrire des données (principalement des dates, des booléens et des types de données float) dans un format de fichier CSV. Voici un extrait de mon code:Python: problèmes avec csvwriter

# Write data to file 
with open(OUTPUT_DIR + output_filename,'w') as outputfile: 
    wrtr = csv.writer(outputfile, delimiter=',', quotechar='"') 

    for x, y in datarows.items(): 
     a,b,c,d,e,f,g = (somedate.strft('%Y-%m-%d'),0,6058.7,False,1913736200,0,False)      
     rowstr = "{0},{1},{2},{3},{4},{5},{6}".format(a,b,c,d,e,f,g) 
     wrtr.writerow(rowstr) 

    outputfile.close() 

Contenu du fichier ressemblent à ceci:

2,0,0,7, -, 10, -, 03, "", 0, » , ", 6,0,5,8,., 7,", ", F, a, l, s, e,", ", 1,9,1,3,7,3,6,2,0 , 0, "", 0, "", F, un, l, s, e

J'utilise actuellement l'objet de fichier brut à écrire dans le fichier - mais je préférerais utiliser le csvwrite - puisque c'est ce qui est censé être utilisé pour

+0

Pouvez-vous préciser ce que votre problème? – Mike

+0

Quelle est la question? – Michael

+0

c'est un code horrible, pourquoi fermez-vous 'outputfile' quand vous utilisez l'instruction' with'? à quoi sert cette «boucle de données» pour la boucle? – SilentGhost

Répondre

3

Regardez cet exemple peut-être il peut vous aider:

import datetime 

with open('file.csv','w') as outputfile: 
    wrtr = csv.writer(outputfile, delimiter=',', quotechar='"') 
    a = (datetime.datetime.now().strftime('%Y-%m-%d'),0,6058.7,False,1913736200,0,False) 
    wrtr.writerow(a) # pass an iterable here 

    # outputfile.close() you don't have to call close() because you use with 

file.csv

2010-11-01,0,6058.7,False,1913736200,0,False 

espère que cela peut vous aider à

5

Essayez plutôt wrtr.writerow([a,b,c,d,e,f,g]).

writerow() Le paramètre doit être une liste de valeurs, pas une ligne de texte. L'idée de csv.writer est de formater les valeurs de ligne selon les règles CSV.

Le résultat que vous avez est dû au fait que writerow() a interprété votre chaîne rowstr comme une liste de caractères.

Questions connexes