Zip で zipファイルを作ろう

Zip というメソッドはディレクトリを渡すとそれをそのまま Zip 化してしまいます。

# dir1 以下を ???.zip に圧縮
Zip( '???.zip', 'dir1' )

少し階層構造を変化させたい場合は、まず、イメージをどこかのフォルダに作るのが無難です。

import glob

# まずはインストール
files = []
files += Install(
  'ZipImage/A'
  glob.glob( '???' ) )
files += Install(
  'ZipImage/B'
  glob.glob( '???' ) )
# zip 化
Zip( '???.zip', files )

上記のコードは、まず Install でイメージを作るフォルダ ( ZipImage ) にコピーしています。glob は指定したパターンのファイル名のリストを得る関数です。Install はコピー先のファイルのリストを返しますので、それをどんどんためていきます。イメージができたら、Zip にまとめて渡します。SCons のメソッドは出力ファイル、またはそのリストを返すので、それをうまく使うのが SCons の上手な使い方のようです。