前言
很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用`unzip -O GBK filename.zip`
就可以搞定。 换了Fedora后,暂时没发现乱码的压缩文件。晚上下载一本书的光盘,又碰到了乱码。尝试之前的方法没成功。看了下unzip的help,没-O那个参数了== 刚好找到一个用python解决的办法,分享下。
新建一个`.py`后缀的文件,直接复制粘贴代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/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文件,可爱的中文就出来了。
1
|
python 文件名.py 需要解压的文件名. zip |
总结
好了,这个问题就这么简单的解决了,大家都学会了吗?希望这篇文章对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。