解决在Linux环境下解压zip的乱码问题
撰写于 2011年12月30日 | 6 条评论
今天折腾了下把windows下的文件全部转移到了Fedora中,之后在解压那些在Windows下压缩为zip格式的压缩包时出现了久违了的乱码问题。于是乎,为了解决这个麻烦事,Google了一堆解决办法一一试过去,却依然没法解决。最后,终于在翻了N页之后找到了一段代码,抱着尝试的心理试用了一下,没想到竟然解决了这一大难题。好东西不忍独享,故而在此贴出让更多人使用。
#!/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()
从代码来看并没有多少技术含量,但是却很实用。
将这段代码保存为 unzip.py之后,将其和需要解压的文件放置在同一个文件夹中,之后在终端中使用下面的代码就可以了:
python unzip.py *.zip
原创文章,转载请注明: 转载自网憩阁
本文链接地址: 解决在Linux环境下解压zip的乱码问题
Linux 新手 用 ubuntu 遇到同樣的問題,不習慣終端。請問有沒有別的辦法啊???
[回复]
叶剑飞 回复:
三月 20th, 2012 at 21:28
@skysoul,
不会用终端的不要用Linux!使用Linux的唯一目的,就是摆脱图形界面,摆脱鼠标,享受命令行!
[回复]
skysoul 回复:
三月 20th, 2012 at 22:38
@叶剑飞, 雖然我在Windows下也好折騰,但我用Ubuntu主要是因為它免費,開源,能滿足日常使用就行。偶爾折騰下還行,真沒想過要擺脫鼠標玩命令行。目的不一樣。謝謝博主回覆!
[回复]
叶剑飞 回复:
三月 20th, 2012 at 22:45
@skysoul,
我不是博主,上面那篇文章不是我写的。我只是一名非常普通的Linux程序员而已。
[回复]
叶剑飞 回复:
三月 20th, 2012 at 22:50
@叶剑飞,
我通常都是用两条命令解决简体中文的乱码的
LANG=C 7z x 文件名.zip
convmv -f cp936 -t utf8 -r –notest *
不过看见你的评论都是繁体字,那就把简体中文代码页cp936改成繁体中文(大五码)代码页cp950
[回复]
skysoul 回复:
三月 20th, 2012 at 23:22
@叶剑飞, 對不起,是我疏忽了。謝謝你建議!