前言
很多時候在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 |
總結
好了,這個問題就這么簡單的解決了,大家都學會了嗎?希望這篇文章對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。