Home  >  Article  >  Backend Development  >  python method to solve Chinese garbled characters when Fedora decompresses zip

python method to solve Chinese garbled characters when Fedora decompresses zip

高洛峰
高洛峰Original
2017-02-22 16:53:341693browse

Preface

In many cases, there is no problem compressing files under Windows, but under Linux, garbled characters appear, which is very common. In the past, under Ubuntu, you could just use `unzip -O GBK filename.zip` . After switching to Fedora, no garbled compressed files were found yet. I downloaded a CD of a book at night and encountered garbled characters again. Tried the previous method without success. After looking at the help of unzip, there is no -O parameter == I just found a solution using python, please share it.

Create a new file with the `.py` suffix, copy and paste the code directly:

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

Execute the decompression zip file, and the lovely Chinese characters will appear. .

python 文件名.py 需要解压的文件名.zip

Summary

Okay, this question is as simple as that Solved, has everyone learned it? I hope this article can bring some help to everyone's study or work. If you have any questions, you can leave a message to communicate.

For more python methods to solve Chinese garbled characters when Fedora decompresses zip, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn