src
特定のソースディレクトリ( )の内容をzipファイル( )に圧縮する関数をスクリプトで作成しようとしていますdst
。たとえば、zip('/path/to/dir', '/path/to/file.zip')
は/path/to/dir
ディレクトリであり、/path/to/file.zip
まだ存在していません。ディレクトリ自体を圧縮したくないので、私の場合はこれですべての違いが生じます。ディレクトリ内のファイル(およびサブディレクトリ)を圧縮したい。これは私が試していることです:
def zip(src, dst):
zf = zipfile.ZipFile("%s.zip" % (dst), "w")
for dirname, subdirs, files in os.walk(src):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()
これにより、本質的に。であるzipが作成されます/
。たとえば、zip形式で圧縮/path/to/dir
すると、zipを解凍すると、「path」が含まれるディレクトリが作成され、そのディレクトリに「to」が含まれるようになります。
この問題を引き起こさない機能を持っている人はいますか?
これを十分に強調することはできません。ディレクトリ自体ではなく、ディレクトリ内のファイルを圧縮する必要があります。