English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Méthode pour résoudre le problème de codage des caractères chinois lors de l'extraction de zip sous Fedora en python

Préface

Souvent, le compression des fichiers sous Windows ne pose pas de problème, mais sous Linux, cela est très courant de rencontrer des caractères codés incorrectement. Avant, sous Ubuntu, j'utilisais `unzip -O Fichier nommé `GBK filename.zip` peut être résolu. Après avoir changé Fedora, je n'ai pas trouvé de fichier compressé avec des caractères mal formés pour le moment. Le soir, j'ai téléchargé un CD d'un livre, et j'ai à nouveau rencontré des caractères mal formés. J'ai essayé la méthode précédente sans succès. J'ai regardé l'aide de unzip, et je n'ai pas}}-O paramètre de celui-là == J'ai trouvé une solution avec python, je la partage.

Créez un fichier `.py` avec une extension, copiez et collez le code directement :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import zipfile
print "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");
for name in file.namelist():
  utf8name=name.decode('gbk')
  print "Extracting " + utf8name
  pathname = os.path.dirname(utf8name)
  if not os.path.exists(pathname) and pathname!= "":
    os.makedirs(pathname)
  data = file.read(name)
  if not os.path.exists(utf8name):
    fo = open(utf8name, "w")
    fo.write(data)
    fo.close
file.close()

Exécutez la décompression du fichier zip, le chinois adorable apparaît.

Nom de fichier python.py, fichier.zip à décompresser

Résumé

Bon, ce problème est résolu de manière aussi simple. Avez-vous tous appris ? J'espère que cet article peut apporter un certain aide à votre apprentissage ou à votre travail. Si vous avez des doutes, vous pouvez laisser des commentaires pour échanger.

Vous pourriez aussi aimer