Заархивировать CSV-файл в python - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь сжать CSV-файл, используя gzip, но получаю пустой путь к переменной.

zip_file = subprocess.check_output(["gzip", "-f", file_name])
print zip_file

1 Ответ

0 голосов
/ 06 марта 2020

Если вы позвоните gzip -f foo, то исполняемый файл gzip прочитает файл foo и создаст новый файл с именем foo.gz. Он ничего не выводит в стандартный вывод, поэтому возвращаемое значение subprocess.check_output() будет пустой строкой (или байтовым объектом в Python3).

gzip ведет себя иначе, если он читает из стандартного ввода, тогда он будет также напишите на стандартный вывод. Вы можете принудить это поведение также с помощью файла в качестве ввода, задав опцию -c:

b = subprocess.check_output([ 'gzip', '-c', file_name ])

После этого b будет содержать байты gzip.

...