Problème :
En Python, un fichier CSV est en cours de traitement , mais la première ligne (ligne d'en-tête) est modifiée au lieu d'être exclue.
Code en question :
<code class="python">in_file = open("tmob_notcleaned.csv", "rb") reader = csv.reader(in_file) out_file = open("tmob_cleaned.csv", "wb") writer = csv.writer(out_file) row = 1 for row in reader: # Row processing logic in_file.close() out_file.close()</code>
Problème :
L'initialisation de la variable 'row' à 1 n'empêche pas le traitement de la ligne d'en-tête.
Solution :
Pour ignorer la ligne d'en-tête, utilisez la fonction next() pour faire avancer le lecteur itérable d'un élément. La valeur de retour de next() peut être ignorée dans ce cas.
Code modifié :
<code class="python">with open("tmob_notcleaned.csv", "rb") as in_file, open("tmob_cleaned.csv", "wb") as out_file: reader = csv.reader(in_file) next(reader, None) # Skip the header row writer = csv.writer(out_file) for row in reader: # Row processing logic</code>
Option alternative :
Si la ligne d'en-tête est souhaitée dans le fichier de sortie, elle peut être transmise àwriter.writerow() avant la boucle :
<code class="python">with open("tmob_notcleaned.csv", "rb") as in_file, open("tmob_cleaned.csv", "wb") as out_file: reader = csv.reader(in_file) headers = next(reader, None) # Returns the header row or None if the input is empty if headers: writer.writerow(headers) for row in reader: # Row processing logic</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!