aboutsummaryrefslogtreecommitdiffstats
path: root/unix/unzip-gbk.py
diff options
context:
space:
mode:
Diffstat (limited to 'unix/unzip-gbk.py')
-rwxr-xr-xunix/unzip-gbk.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/unix/unzip-gbk.py b/unix/unzip-gbk.py
new file mode 100755
index 0000000..423e10f
--- /dev/null
+++ b/unix/unzip-gbk.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# unzip-gbk.py
+#
+# http://note.ninehills.info/linux-gbk.html
+#
+
+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()