Как узнать, сжимается ли файл
Из набора файлов я создаю файл tar, а из файла tar файл tar.gz (с использованием python).
Создание сжатого файла может занять некоторое время, поэтому:
Я хотел бы знать, есть ли способ узнать, что "процесс создания сжатого файла" "идет".
Может быть, проверка по временному файлу или тому подобное?
Спасибо
1 ответ
Вы можете использовать Python для создания вашего gzip
файл (возможно, в другом потоке), чтобы вы могли знать, когда файл создается (и даже получить индикатор прогресса)
Пишите в чанках и в отчете о проделанной работе, так как вы получаете контроль каждый раз, когда записываете кусок файла в сжатый вывод (есть более причудливые индикаторы выполнения, я сделаю простую печать):
import gzip,shutil,os
input_file = "input.tar"
input_size = os.path.getsize(input_file)
chunk_size = 100000
written = 0
with open(input_file,"rb") as fr,gzip.open(input_file+".gz","wb") as fw:
chunk = fr.read(chunk_size)
fw.write(chunk)
written += chunk.size()
print("Progress {} bytes out of {}".format(written,input_size))
Другое решение будет использовать режим вывода gzip из tarfile
использовать библиотеку и использовать индикатор выполнения для файлов, которые пишутся / оставляются для записи (зная, что это не будет точно, если файлы очень разных размеров)