1

フォルダの内容を圧縮できました。しかし、圧縮されたばかりのフォルダーに圧縮ファイルを残しておきたいと思います。たとえば、C: ドライブに test というフォルダーを圧縮しました。しかし、「test.zip」ファイルを C:\test に含めたいと思います。これどうやってするの?前もって感謝します。

コード例による質問の明確化:

私の質問が紛らわしいと誰かが親切に指摘しましたが、Pythonの初心者にとっては多くのことが混乱しています:) - この質問が基本的すぎるか、答えが明らかである場合は、事前にお詫び申し上げます。結果のzipファイルがzipされたフォルダー内にあることを確認する方法がわかりません。つまり、「basedir」で zip 処理を行ってほしいということです。そうすれば、ユーザーは C ドライブのどこかで検索する時間を無駄にしません。


def zip_folder(basedir, zip_file): z = zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(basedir): print "zipping files:" for fn in filenames: print fn absfn = os.path.join(dirpath, fn) z.write(absfn) z.close

4

1 に答える 1

2

関数に zip_file として渡すものはすべて、ZipFile オブジェクトが書き込むファイルになります。したがって、フルパスを渡すと、そこに配置されます。ファイル名だけを渡すと、現在の作業パスの下のそのファイル名に書き込まれます。zip_file が絶対パスであることを確認する必要があるようです。

于 2008-11-20T22:23:49.000 に答える