Если вы позвоните gzip -f foo
, то исполняемый файл gzip
прочитает файл foo
и создаст новый файл с именем foo.gz
. Он ничего не выводит в стандартный вывод, поэтому возвращаемое значение subprocess.check_output()
будет пустой строкой (или байтовым объектом в Python3).
gzip
ведет себя иначе, если он читает из стандартного ввода, тогда он будет также напишите на стандартный вывод. Вы можете принудить это поведение также с помощью файла в качестве ввода, задав опцию -c
:
b = subprocess.check_output([ 'gzip', '-c', file_name ])
После этого b
будет содержать байты gzip
.