@TORONTOADLER

Не правильная сборка файлов в python?

Всем привет, пожалуйста помогите.
У меня есть 2 файла(первый разбирает файл на чанки, второй собирает его обратно), не понимаю где ошибка в коде, файлы получаются разные и с разным значением хэша
chunk_size = 9000

readFile = input("введите полный путь к файлу чтения: ")


with open(readFile, 'rb') as f:

    i = 0

    while True:

        data = f.read(chunk_size)

        if data:
            with open(f'chunk_{i}', 'wb') as f2:
                f2.write(data)
        else:
            break

        i += 1

print("файл успешно прочитан")
hash1 = hash(readFile)
print(hash1)

Это был первый файл для разборки на чанки

Второй файл для сборки:
i = -1
recordingFile = input("введите полный путь для файла записи: ")

with open(recordingFile, 'wb') as f:
    i = +1

    for ch in range(i):
        with open(f'chunk_{ch}', 'rb') as chunk_file:
            f.write(chunk_file.read())

hash2 = hash(recordingFile)
print(hash2)


После разбора и сборки файла получается что-то типа этого:622f60dd21c5e043660293.jpeg

Изначально фото было нормальным, помогите пожалуйста!
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Нужно запоминать кол-во чанков, и все их по очереди склеивать. Либо по порядку брать все файлы chunk_X

После работы 1 скрипта у вас получилось, допустим, 15 файлов. Соответственно, при обратной сборке должно быть прочитано 15 файлов:
with open(recordingFile, 'wb') as f:
    for ch in range(16):
        with open(f'chunk_{ch}', 'rb') as chunk_file:
            f.write(chunk_file.read())


У вас же это 1 файл, т.к. i = 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы