3 votes

Formatage des cellules csv en texte avec python

Je donne une ligne de données à écrire dans un fichier csv. Il s'agit principalement de nombres de type flottant. Mais lorsqu'elles sont écrites dans le fichier csv, les cellules sont par défaut dans un format personnalisé. Ainsi, si j'ai un nombre en entrée comme 3,25, il s'imprime comme "Mar 25". Comment puis-je éviter cela ?
C'est le morceau de code :

data = [0.21, 3.25, 25.9, 5.2]  
f = open('Boot.csv','w')  
out = csv.writer(f, delimiter=';', quoting=csv.QUOTE_NONE)  
out.writerow(data)

0voto

Jpsy Points 2811

Si votre problème est qu'Excel importe bizarrement des CSV, alors vous devriez écrire directement des fichiers XLSX au lieu de CSV. Cela vous donne un contrôle total sur l'interprétation du contenu des cellules.

Le meilleur package que j'ai utilisé jusqu'à présent pour écrire des fichiers Excel en Python est le suivant openpyxl (même recommandé par l'auteur de l'ouvrage à plus grande diffusion xlwt paquet).

Quelques exemples de code tirés de la documentation d'openpyxl :

from openpyxl import Workbook
wb = Workbook()

# grab the active worksheet
ws = wb.active

# Data can be assigned directly to cells
ws['A1'] = 42

# Rows can also be appended
ws.append([1, 2, 3])

# Python types will automatically be converted
import datetime
ws['A2'] = datetime.datetime.now()

# Save the file
wb.save("sample.xlsx")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X