Maison > Questions et réponses > le corps du texte
python CSV模块 写入CSV文件时,0开头的数字会丢失
# _*_ coding:utf-8 _*_
#win7+python2.7.x
import csv
csvfile = file('csvtest.csv', 'wb')
writer = csv.writer(csvfile)
writer.writerow(['id', 'url', 'keywords'])
data = [
('0011', 'http://www.59store.com/', '59store.com'),
('0022', 'http://59data.top/', '59data.top'),
('0033', 'http://my.space.zmx/', '汉子乱码?')
]
writer.writerows(data)
csvfile.close()
写入CSV时会丢失0字头,汉字乱码
PHP中文网2017-04-17 17:52:05
C’est un problème Excel.
Excel devinera s'il s'agit d'une colonne numérique. S'il s'agit d'une colonne numérique, elle sera affichée numériquement par défaut (0 est omis).
Le format par défaut d'Excel est le jeu de caractères local (la version chinoise simplifiée est gbk
). Il ne peut pas reconnaître automatiquement le format utf8
sans le format BOM à moins qu'un en-tête de nomenclature à 3 caractères ne soit ajouté devant le fichier. . (Dans une certaine version sous office 2007, il y a aussi un bug pour les utf8
fichiers avec en-têtes de BOM)
Vous devez l'ouvrir avec un éditeur de texte (pas notepad
) et jeter un œil au contenu.
Explication supplémentaire :
L'ancien logiciel de Microsoft ne prend pas en charge les fichiers UTF8 sans nomenclature. L'en-tête bom est le début du fichier utf8 plus trois caractères (l'hexadécimal est EFBBBF
Vous pouvez rechercher utf8 bom头
spécifiquement).
Il n'y a pas de solution parfaite, je vous la liste à choisir en fonction de la situation :
Si vous souhaitez conserver l'encodage utf
, vous pouvez essayer d'ajouter l'en-tête Bom
devant le fichier. (C'est-à-dire, écrivez trois caractères avant d'écrire dans le fichier)
S'il s'agit uniquement pour Excel et utilisé en Chine continentale, vous pouvez directement écrire le fichier en GBK
encodage.
天蓬老师2017-04-17 17:52:05
Les résultats de mon test :
id,url,keywords
0011,http://www.59store.com/,59store.com
0022,http://59data.top/,59data.top
0033,http://my.space.zmx/,汉子乱码?
Il semble qu'il n'y ait rien de mal avec le fichier texte brut. Je suppose que cela peut être dû au logiciel de feuille de calcul que vous utilisez pour ouvrir le fichier csv. (Les Numbers
et OpenOffice Calc
de Mac ont tous deux ce phénomène)
Par exemple, si le type du champ id est défini sur un nombre, le 0 inutile devant peut être automatiquement ignoré. Comme ça, vous pouvez essayer de le changer en texte brut, puis de l'activer.
P.S. La partie de Excel
se trouve dans les instructions de Yuhe CC.
Pour traiter les fichiers xlsx avec plus de précision et de détails, vous pouvez utiliser XlsxWriter, qui peut contrôler le type de données (type de données) et même le format (format).