87

2 つの異なるディレクトリに 2 つのファイルがあり、1 つは'/home/test/first/first.pdf'、もう 1 つは です'/home/text/second/second.pdf'。次のコードを使用して圧縮します。

import zipfile, StringIO
buffer = StringIO.StringIO()
first_path = '/home/test/first/first.pdf'
second_path = '/home/text/second/second.pdf'
zip = zipfile.ZipFile(buffer, 'w')
zip.write(first_path)
zip.write(second_path)
zip.close()

作成した zip ファイルを開くと、その中にhomeフォルダーがあり、その中に 2 つのサブフォルダーがfirstありsecond、次に pdf ファイルがあります。フルパスをzipアーカイブに圧縮する代わりに、2つのpdfファイルのみを含める方法がわかりません。質問が明確になることを願っています。助けてください。ありがとう。

4

6 に答える 6

5

もっとエレガントな解決策があるのではないかと思いますが、これはうまくいくはずです:

def add_zip_flat(zip, filename):
    dir, base_filename = os.path.split(filename)
    os.chdir(dir)
    zip.write(base_filename)

zip = zipfile.ZipFile(buffer, 'w')
add_zip_flat(zip, first_path)
add_zip_flat(zip, second_path)
zip.close()
于 2013-04-18T20:02:51.827 に答える