Lire et Écrire des fichiers CSV, y compris unicode avec Python 2.7

Je suis nouveau sur Python, et j'ai une question sur la façon d'utiliser Python pour lire et écrire des fichiers CSV. Mon fichier contient, comme l'Allemagne, le français, etc. Selon mon code, les fichiers peuvent être lus correctement en Python, mais quand je l'écris dans un nouveau fichier CSV, l'unicode devient des personnages étranges.

Les données comme:
Lire et Écrire des fichiers CSV, y compris unicode avec Python 2.7

Et mon code est:

import csv

f=open('xxx.csv','rb')
reader=csv.reader(f)

wt=open('lll.csv','wb')
writer=csv.writer(wt,quoting=csv.QUOTE_ALL)

wt.close()
f.close()

Et le résultat est, comme:
Lire et Écrire des fichiers CSV, y compris unicode avec Python 2.7

Voulez-vous me dire ce que je dois faire pour résoudre le problème? Merci beaucoup!

  • vous pouvez encoder en base64, pythn a un module pour ça aussi.
  • J'utilise cette github.com/jdunck/python-unicodecsv
  • De quelle source et de destination de codage utilisez-vous pour vos fichiers? Unicode est pas un encodage (sauf si vous êtes Microsoft...mais ils signifient vraiment UTF-16LE).
  • Merci beaucoup! Je voudrais essayer.
  • Merci beaucoup! J'ai essayé le code dans le lien, mais ça ne fonctionne toujours pas. En fait, tout est très bien lorsque je l'importation de données et imprimer des données en Python. Mais après, je ne les écris dans le nouveau fichier csv, les caractères spéciaux modification chose d'étrange. Avez-vous une idée de ce?
  • Merci beaucoup! Il semble ne pas faire de changements. En fait, tout est très bien lorsque je l'importation de données et imprimer des données en Python. Mais après, je ne les écris dans le nouveau fichier csv, les caractères spéciaux modification chose d'étrange. Est-il possible d'être causés par les paramètres de langue ou de système informatique? Merci beaucoup!
  • Êtes-vous sur de Windows? L'encodage que vous utilisez pour les fichiers? De nombreux programmes windows que lire les fichiers UTF-8 comme une NOMENCLATURE de signature au début d'un fichier UTF-8. Utiliser le utf-8-sig d'encodage lors de l'écriture du fichier à s'assurer que l'un est écrit.
  • essayez "latin1", comme le type de codage lorsque vous ouvrez le fichier ... qui sera très souvent de résoudre le problème lorsque vous traitez avec les langues européennes
  • Merci beaucoup! Je suis sur Windows. Mais où dois-je spécifier l'encodage utf-8-sig?
  • Merci de vous répondre. où dois-je changer le type d'encodage?
  • J'ai mis à jour ma réponse ci-dessous pour utiliser utf-8-sig lors de la lecture ou de l'écriture du fichier à assurer une NOMENCLATURE signature est ajoutée au fichier. Par exemple, si j'ouvre le fichier dans Excel sans BOM, je reçois 美国人, mais avec ce que je reçois 美国人.
  • Merci beaucoup! Ça marche!!!!
  • Super! Assurez-vous d'accepter une réponse si cela vous aide.