-4

此脚本将文件保存为"/home/name/main/all my files and stuff". 我想将其另存为"main/all my files and stuff".

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
4

1 回答 1

2

问题是zipfile存储了您提供的完整路径ZipFile.writearcname但是您可以使用参数 ( ref )修改 zip 中的路径。

所以你只需'/home/name/'要从文件名中去掉:

filename = os.path.join(dir, f)
z.write(filename, arcname=filename[11:])
于 2012-06-15T08:06:30.557 回答