1

次のコードを使用して、フォルダーのコンテンツ (いくつかのディレクトリとファイル) を含む zipfile を作成しようとしています。

import zip,os

path = "c:\\tester\\folderToZip"
zip = zipfile.ZipFile("zippedFolder.zip", "w")
for root, dirs, files in os.walk(path):
    for file in files:
        zip.write(os.path.join(root, file))
zip.close()

しかし、コードを実行した後、zip ファイルをチェックすると、zip ファイルではなく、"folderToZip" フォルダーのコンテンツ (例: f1,f2,f2, a.txt,b.txt,c.txt) が含まれています。変数パスのフルパス。

それで、質問は、フォルダーの内容に基づいてzipファイルを作成するにはどうすればよいですか?フルパスではありませんか?

4

1 に答える 1

2

writeは、2 番目のオプション パラメータ を受け取りますarcname。指定すると、保存されたファイルの名前が提供されます。それを使用して、必要な名前を指定します。

ファイル名のみが必要な場合:

import zip,os

path = "c:\\tester\\folderToZip"
zip = zipfile.ZipFile("zippedFolder.zip", "w")
for root, dirs, files in os.walk(path):
    for file in files:
        filename = os.path.join(root, file)
        zip.write(filename, filename)
zip.close()
于 2013-07-20T20:53:05.523 に答える