2012-06-15 57 views
-4

該腳本將文件保存爲"/home/name/main/all my files and stuff"。我想將它保存爲"main/all my files and stuff"python os.walk將所有內容保存在目錄中

def zipit(): 
    file_paths = ['/home/name/main/'] 
    buffer= StringIO.StringIO() 
    z= zipfile.ZipFile(buffer, "w") 
    for p in file_paths: 
    for dir, subdirs, files in os.walk(p): 
     for f in files: 
     z.write(os.path.join(dir, f)) 
    z.close() 
    buffer.seek(0) 
    final = HttpResponse(buffer.read()) 
    final['Content-Disposition'] = 'attachment; filename=dbs_custom_library.zip' 
    final['Content-Type'] = 'application/x-zip' 
    return final 
+0

你什麼輸出? –

+0

它的工作原理,但它保存從「/ home」開始,我希望它保存在「/ main」開始 – user1457212

+1

在這個腳本中你指定你想從' –

回答

2

的問題是zipfile商店,這樣賦予ZipFile.write的完整路徑。但是,您可以使用arcname參數(ref)修改zip中的路徑。

所以你只需要從文件名剝離'/home/name/'

filename = os.path.join(dir, f) 
z.write(filename, arcname=filename[11:])