GZIP (.gz)
予備知識
-
- MIMEタイプ:application/x-gzip
- GZIP圧縮法およびファイル形式.
- 汎用可逆圧縮方式.
- 一般にデータのアーカイブやインターネット上でのファイル交換に使われる.
- 多くの場合TARと組み合わせて使われる.
- Unixシステム上でよく使用される.
- GZIPファイル形式はインターネット標準勧告RFC1952に記述されている.
- バイナリ形式.
- 単一ファイルを保管する.
ImportとExport
- Import["file.gz"]は file.gzを解凍し,ファイルの内容から形式を自動的に予測して file をインポートする.
- Import["file.ext.gz",elem]は圧縮されていないファイル"file.ext"から指定の要素をインポートする.
- Import["file.ext.gz","format"] はGZIPファイルを解凍し,"file.ext"を"format"としてインポートする.
- Import["file.ext.gz",{"format",elements}]は"file.ext"から要素を"format"としてインポートする.
- Import["file.ext.gz",{elem,suba,subb,…}]はサブ要素をインポートする.
- インポート形式は明示的にImport["file.gz",{"GZIP",…}]で指定できる.
- Export["file.ext.gz",expr]は任意の式 expr を,形式がファイル名拡張子.extで分かるGZIP圧縮ファイルにエキスポートする.
- エキスポート形式とGZIP圧縮方式は明示的にExport["file",expr,{"GZIP","format"}]で指定できる.
- 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
オプション
- 一般的なExportオプション:
-
CompressionLevel Automatic 0から1までの範囲の数字で与えられるGZIPの圧縮強度 - 設定CompressionLevel->1は使用可能な最大強度の圧縮に相当し,結果のファイルサイズは可能な最小のサイズとなる.
例題
すべて開く すべて閉じる例 (2)
ExportString[ "A System for Doing Mathematics by Computer", {"GZIP", "Text"} ]ImportString[%]グラフィックスをGZIP圧縮JPEGファイルにエキスポートする:
Export["cat.jpg.gz", \!\(\*GraphicsBox[«3»]\)]JPEGファイルの利用可能なImport要素を示す:
Import["cat.jpg.gz", "Elements"].gzファイルから任意の要素をインポートする際,Wolfram言語は自動的にそれを解凍する:
Import["cat.jpg.gz", "ImageSize"]Exportオプション (2)
CompressionLevel (2)
ExportString[\!\(\*GraphicsBox[«3»]\), { "GZIP", "PNG"}]//ByteCountこれはCompressionLevel1に等しい:
ExportString[\!\(\*GraphicsBox[«3»]\), {"GZIP", "PNG"}, CompressionLevel -> 1]//ByteCountExportString[\!\(\*GraphicsBox[«3»]\), { "GZIP", "PNG"}, CompressionLevel -> 0]//ByteCount圧縮レベルを増やしていったときのファイルサイズをプロットする:
text = ExampleData[{"Text", "AliceInWonderland"}];
Table[{l, ByteCount[ExportString[text, { "GZIP", "Text"}, CompressionLevel -> l]]}, {l, 0, 1, .1}]//ListLinePlot特性と関係 (2)
data = StringJoin[ConstantArray[ExampleData[{"Text", "AliceInWonderland"}], 5]];GZIP,BZIP2,ZSTDの圧縮を非圧縮のサイズと比較する:
formats = {"Text", "GZIP", "BZIP2", "ZSTD"};
BarChart[ByteCount[ExportString[data, #]]& /@ formats, ...]First[AbsoluteTiming[ExportString[data, #]]]& /@ formatsformats = {"GZIP", "BZIP2", "ZSTD"};
BarChart[Round[First[AbsoluteTiming[ExportString[data, #]]], .001]& /@ formats, ...]圧縮の量は圧縮されるデータによって異なる.たとえば,JPEG 画像は既に圧縮されており,GZIP でさらに圧縮することはできない.:
ByteCount[ExportString[\!\(\*GraphicsBox[«3»]\), "JPEG"]]ByteCount[ExportString[\!\(\*GraphicsBox[«4»]\), {"GZIP", "JPEG"}]]関連するガイド
-
▪
- 圧縮とアーカイブ形式 ▪
- インポートとエキスポート ▪
- 全形式のリスト ▪
- システム・ユーティリティ形式
履歴
2005 で導入 (5.2) | 2008 で更新 (7.0) ▪ 2020 (12.1)