[elbe-devel] [PATCH v2 17/22] filesystem: add support for reading and uncompressing gziped files
Bastian Germann
bage at linutronix.de
Tue Jul 2 17:17:21 CEST 2019
> Prepare to read gzipped changelog files.
> Add Filesystem.open_gz() and add gzip:bool param to Filesystem.read_file()
>
>
> Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
Reviewed-by: Bastian Germann <bage at linutronix.de>
> ---
> elbepack/filesystem.py | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/elbepack/filesystem.py b/elbepack/filesystem.py
> index 450f15248..5c766ba4e 100644
> --- a/elbepack/filesystem.py
> +++ b/elbepack/filesystem.py
> @@ -12,6 +12,7 @@ import shutil
> from glob import glob
> from tempfile import mkdtemp
> from string import digits
> +import gzip
>
> def size_to_int(size):
> if size[-1] in digits:
> @@ -66,6 +67,9 @@ class Filesystem(object):
> def open(self, path, mode="r"):
> return open(self.fname(path), mode)
>
> + def open_gz(self, path, mode="r"):
> + return gzip.open(self.fname(path), mode)
> +
> def isdir(self, path):
> return os.path.isdir(self.fname(path))
>
> @@ -212,10 +216,16 @@ class Filesystem(object):
> if mode is not None:
> self.chmod(path, mode)
>
> - def read_file(self, path):
> - fp = self.open(path, "r")
> - retval = fp.read()
> - fp.close()
> + def read_file(self, path, gzip=False):
> + if gzip:
> + print('read gzip '+path)
> + fp = self.open_gz(path, "r")
> + else:
> + fp = self.open(path, "r")
> +
> + with fp:
> + retval = fp.read()
> +
> return retval
>
> def mkdir_p(self, newdir, mode=0o755):
>
More information about the elbe-devel
mailing list