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

Метод решения проблемы кириллической сшибки при разархивации zip в Fedora с помощью Python

Введение

Во многих случаях в Windows при сжатии файлов проблем не возникает, но на Linux могут出现乱码,что довольно часто. Раньше в Ubuntu, чтобы решить эту проблему, можно было использовать команду `unzip -O GBK filename.zip`. После перехода на Fedora пока не встречал сжатые файлы с乱ными символами. Вечером скачал диск с книгой, и снова встретил乱码。Попробовал применить старый способ, но он не сработал. Посмотрел help команды unzip, и там уже нет параметра -O == В это время нашел способ решения проблемы с помощью Python, хочу поделиться.

Создайте новый файл с расширением `.py`, и скопируйте вставьте код:

#!/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()

Выполните разархивирование zip-файла, и появятся可爱的 китайские иероглифы.

python файл с расширением .py имя файла.zip, который нужно разархивировать

Обобщение

Хорошо,这个问题就这么简单的解决了, все ли вы научились? Надеюсь, эта статья поможет вам в изучении или работе. Если у вас есть вопросы, вы можете оставить комментарий.

Основной учебник
Рекомендуется к просмотру