Je dois créer un fichier et écrire son contenu d'en-tête avant la boucle for. Si je le fais dans la boucle, le contenu de l'en-tête se répète à chaque itération de la boucle. Lorsque j'exécute le code ci-dessous, j'obtiens l'erreur "opération d'E/S sur un fichier fermé".Ecriture et lecture dans un fichier csv - erreur d'opération d'E/S
Est-ce que vous vous demandez s'il y a un problème pour ce problème? Toute suggestion serait appréciée. TIA !!
csv_filename = "testfile4.csv"
with open(csv_filename, "wt") as csvfile:
writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
# CSV Header
header = ["Post ID", "Permalink", "Create Time"]
writer.writerow(header)
for group in getGroups():
feed = getValues(group["id"], group["name"])
with open(csv_filename, "a") as csvfile:
for item in feed:
row = [item["id"], item["permalink_url"], item["created_time"]]
writer.writerow(row)
Déplacez votre entière boucle 'for' un tiret plus profond. –
Qu'avez-vous essayé jusqu'à présent? avez-vous essayé de supprimer l'un des blocs "avec"? avez-vous essayé de fermer le fichier entre l'ouverture? – xyious
N'ouvrez pas le fichier une seconde fois en mode "a", ce qui est totalement inutile. Faites simplement tout à l'intérieur du premier bloc 'with'. –