2012-07-02 64 views
3

有時你會通過帶有文件或目錄的Zip文件來獲取名稱中的一些無法識別的字符,因此無法解壓縮它們。你用什麼工具將它們轉換爲正確轉換的文件名?如何使用非Unicode非拉丁文件名提取Zip文件?

+0

我沒有投票給你,但你會更好地問一個問題(「我如何提取與非unicode非拉丁文件名的zip文件?」)並提交您的解決方案作爲答案,然後接受它。 (這樣,如果它有用,你也可以在答案中得到upvotes)。 *編輯*毆打它! – Caspar

+0

+1,因爲它聽起來很有用...但請提交它作爲答案...不只是問題 –

+0

嗯,我認爲自我回答是好的..我看到一些實際上是教程的「問題」。好吧,我會嘗試。謝謝。 – h2kyeong

回答

3

我搜索了網頁,但未能找到一個好的腳本。因此,我自己寫了一個Python腳本。希望對某人來說很方便。

歡迎任何建議,特別是如果你知道這在某些特殊情況下不起作用。請不要選擇不整潔的編碼風格。

import os,sys,zipfile 

x, fn = sys.argv 
enc = 'utf-8' 

zipf = zipfile.ZipFile(fn) 
for x in zipf.infolist(): 
    fn = x.filename 
    fne = fn.encode(enc) 
    if os.sep in fne: 
     path = fne[:fne.rindex(os.sep)] 
     if not os.path.exists(path): os.makedirs(path) 
    if fne.endswith(os.sep): continue 
    f = open(fne,'wb') 
    f.write(zipf.open(fn).read()) 
    f.close() 
相關問題