Python .csv écrivain

- Je utiliser un .writer() méthode dans une boucle, comme illustré dans la documentation Python.
Je veux écrire les résultats de la variable u, ligne par ligne (ou mieux, ligne par ligne).

Effectivement, il fonctionne parfaitement dans l'interpréteur, mais le module writerow() ne semble pas fonctionner. Pourquoi?

from urlparse import urlparse
import csv
import re

ifile =open(ipath,'r')
ofile = open(opath, 'wb')
writer = csv.writer(ofile, dialect='excel')

url =[urlparse(u).netloc for u in file (ipath, "r+b")]
sitesource =  set([re.sub("www.", "", e) for e in url])
liste = [re.split(",'", e) for e in liste]


ofile
for row in file (ifile) :
    for u in sitesource:
        print ("Creation de:", u)
        writer.writerow(u) 

ofile.close()

J'utilise Python 2.7.

  • L'interpréteur python jeter une erreur ou quel est le problème? BTW, vous avez l'impression de la valeur de la variable "u", mais vous êtes en train de rédiger la lettre "u" pour le csv. Est-ce que vous voulez?
  • Pas d'erreur dans l'interpréteur. Je veux imprimer la valeur de la variable u. BTW le fichier ne semble pas être ouvert.
  • Quel est le résultat que vous voyez ? Est ofile vide ? Mettre le fichier s'ouvre dans un essai,à l'exception du bloc et de voir si il n'y a aucune IOError levée lorsque vous essayez d'ouvrir les fichiers (ifile,ofile) . Si il n'y a pas de IOError , vérifier si est sitesource un vide ? imprimer son contenu et voir si elle a des valeurs.
  • peut-être que vous n'écrivez pas le caractère de terminaison ? C'est de cette façon-je créer l'objet writer Writer = csv.writer(open(sys.argv[2], 'wb'), delimiter=',',quotechar='"', citant=csv.QUOTE_MINIMAL)
  • for row in file (ifile) : est incorrect. ifile est déjà ouvert, il devrait donc être for row in ifile:
  • Aussi, vous itérer sur chaque row, mais alors ne l'utilisez pas. Pourquoi?
  • u est une chaîne de caractères. writerow s'attend à une séquence de chaînes de caractères.
  • Je ne vois pas de vous en utilisant liste après la cession. Peut-être que vous avez oublié de supprimer cette ligne à partir de votre exemple?

InformationsquelleAutor c24b | 2011-04-18