-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 に答える