Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324

Запись данных в бинарный файл

16.10.2019, 15:49. Показов 1831. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Мне нужно закодировать файл, и раскодировать его.
Пример:
Закодированное сообщение:
\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\x0 6\x05\x04\x06\x06\x05\x06\x07\x07\x06\x0 8\n\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06 \x07\x07\x06\x08\n'(44 байта)
Раскодированное сообщение:
x80\x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\ x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xd bK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06 K\x05K\x06K\x07K\x07K\x06K\x08K\ne. (92 байта)

Дело в том, что я записываю раскодированное сообщение с помощью коллекции. Может ли она влиять на то, как записываются данные?

Python
1
2
3
4
5
6
7
8
9
10
11
12
for k in range(len(mobs)):
            deM = mul(mobs[k], powmod(mobsr[k], p - 1 - mobscb[k], p), p)
                
                #return deM
            print("Decrypted222 =", deM)
            
            qw=deM
            print(qw)
            mobqw.append(qw)
            fs = 'rez_eg.dat'
            with open(fs.encode('utf8'), "wb") as file:
                pickle.dump(mobqw, file)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2019, 15:49
Ответы с готовыми решениями:

Создание и запись в бинарный файл
Добрый вечер. У меня есть строка произвольной длины, длина кратна 16, состоящая из нулей и единиц. Мне необходимо записать её в бинарный...

Запись в бинарный файл
Питоном до этого никогда не пользовался. Я сам C++ программист. Нужна помощь с записью в бинарный файл вещественных чисел с возможностью...

Запись данных в бинарный файл
Добрый вечер, возник вопрос: как записать массив целых чисел в бинарный файл? У меня запись происходит в таком виде: QFile...

13
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,212
16.10.2019, 16:20
Mindfure, отладчик вам в помощь
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 16:45  [ТС]
Alli_Lupin, По нему все хорошо, именно с записью проблема. Я не понимаю почему они записываются криво
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
16.10.2019, 16:49
Mindfure, проверьте - ка отступы.

Добавлено через 22 секунды
Ибо меня терзают смутные сомнения, что вы где-то НЕ ошиблись.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 16:50  [ТС]
Damenikx, Это сарказм?
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
16.10.2019, 16:52
Mindfure, нет, я серьёзно, проверьте отступы, возможно где-то пропустили. И что под вашим пониманием - "криво"? Всей программы мы не видим, как записывает тоже Больше информации сударь.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 16:57  [ТС]
Damenikx, Понял вас.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Кодирование битов:
f = open('s.dat', 'rb')
    for line in f:
        print(line)
        for c in line:#считывание строки в файле
            if c:
                g = random.randint(1, p - 1)
                cb = random.randint(1, p - 1)
                k = random.randint(1, p - 2)
                db = powmod(g, cb, p)
                print("db =", db)
                #r = powmod(g, k, p)
                e = mul(powmod(db, k, p), c, p)
                print("e=",e)
                r = powmod(g, k, p)
                mobs.append(e)
                mobsg.append(g)
                mobscb.append(cb)
                mobsk.append(k)
                mobsr.append(r)
        
        print("ss",mobs)
Раскодирование:
Python
1
2
3
4
5
6
7
8
9
for k in range(len(mobs)):
            deM = mul(mobs[k], powmod(mobsr[k], p - 1 - mobscb[k], p), p)
            print("Decrypted222 =", deM)
            qw=deM
            print(qw)
            mobqw.append(qw)
            fs = 'rez_eg.dat'
            with open(fs, "wb") as file:
                pickle.dump(mobqw, file)
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,212
16.10.2019, 16:59
Mindfure, по нему может быть как угодно. Посмотрите им, что именно и куда он записывает.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 17:48  [ТС]
Alli_Lupin, Да посмотрел, все куда нужно он вычисляет. Может быть проблема в том, что это все из-за списка? Я эти байты расшифрованные помещаю в список, а затем записываю в файл.

Добавлено через 41 минуту
Кликните здесь для просмотра всего текста
'\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\x 06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x 08\n'
db = 27
e= 657
db = 563
e= 1176
db = 296
e= 790
db = 998
e= 154
db = 1008
e= 261
db = 1246
e= 733
db = 663
e= 711
db = 1
e= 5
db = 11
e= 1322
db = 119
e= 199
db = 985
e= 767
db = 1121
e= 1239
db = 1335
e= 57
db = 1050
e= 642
db = 402
e= 864
db = 13
e= 494
db = 1312
e= 998
db = 784
e= 203
db = 376
e= 758
db = 273
e= 1176
ss [657, 1176, 790, 154, 261, 733, 711, 5, 1322, 199, 767, 1239, 57, 642, 864, 494, 998, 203, 758, 1176]
b'\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06 \x07\x07\x06\x08\n'
db = 1282
e= 561
db = 451
e= 1363
db = 317
e= 284
db = 494
e= 585
db = 1205
e= 1058
db = 700
e= 496
db = 1027
e= 32
db = 1032
e= 116
db = 534
e= 4
db = 365
e= 852
db = 472
e= 963
db = 598
e= 449
db = 178
e= 641
db = 671
e= 1164
db = 618
e= 122
db = 1037
e= 422
db = 1234
e= 753
db = 279
e= 758
db = 440
e= 1290
db = 1029
e= 446
db = 1009
e= 298
db = 164
e= 78
ss [657, 1176, 790, 154, 261, 733, 711, 5, 1322, 199, 767, 1239, 57, 642, 864, 494, 998, 203, 758, 1176, 561, 1363, 284, 585, 1058, 496, 32, 116, 4, 852, 963, 449, 641, 1164, 122, 422, 753, 758, 1290, 446, 298, 78]
Decrypted222 = 255
255
Decrypted222 = 216
216
Decrypted222 = 255
255
Decrypted222 = 219
219
Decrypted222 = 67
67
Decrypted222 = 6
6
Decrypted222 = 4
4
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 4
4
Decrypted222 = 6
6
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 7
7
Decrypted222 = 7
7
Decrypted222 = 6
6
Decrypted222 = 8
8
Decrypted222 = 10
10
Decrypted222 = 255
255
Decrypted222 = 216
216
Decrypted222 = 255
255
Decrypted222 = 219
219
Decrypted222 = 32
32
Decrypted222 = 67
67
Decrypted222 = 32
32
Decrypted222 = 6
6
Decrypted222 = 4
4
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 4
4
Decrypted222 = 6
6
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 7
7
Decrypted222 = 7
7
Decrypted222 = 6
6
Decrypted222 = 8
8
Decrypted222 = 10
10

Расшифровка правильная, а в записанном файле по другому выглядит
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,212
16.10.2019, 17:55
Mindfure, а в переменной, из которой вы пишете в файл, правильно?

Добавлено через 22 секунды

Не по теме:

убирайте много_текста под спойлер

0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
16.10.2019, 17:56
Цитата Сообщение от Mindfure Посмотреть сообщение
with open(fs, "wb") as file:
Файл на дозапись надо открывать: "ab"
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 18:05  [ТС]
Arsegg, Зачем на дозапись, когда я туда списком записываю?

Добавлено через 3 минуты
Alli_Lupin, Да все верно.
Кликните здесь для просмотра всего текста
Зашифрованный:
44
b'\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\ x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\ x08\n\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06 \x07\x07\x06\x08\n'
Расшифрованный:
92
b'\x80\x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\ x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xd bK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06 K\x05K\x06K\x07K\x07K\x06K\x08K\ne.'

Туда просто лишние байты еще почему-то записываются
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
16.10.2019, 18:12
Mindfure, вы в цикле записываете (в т.ч. пересоздаете) в файл mobs[k]. По факту только последнее значение mobs хранится в файле.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 18:19  [ТС]
Arsegg, Нет, туда все нормально записывается.
Кликните здесь для просмотра всего текста
44
b'\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\ x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\ x08\n\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06 \x07\x07\x06\x08\n'
184
b'\x80\x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\ x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xd bK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06 K\x05K\x06K\x07K\x07K\x06K\x08K\ne.\x80\ x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\ x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xd bK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06 K\x05K\x06K\x07K\x07K\x06K\x08K\ne.'

Изменил на ab.,добавил все тоже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2019, 18:19
Помогаю со студенческими работами здесь

Запись данных в бинарный файл
Мне нужно записать в бинарный файл координаты точек с помощью fwrite и попутно выводить их на экран. После того, как пользователь запишет...

Запись данных в бинарный файл
Всем добра форумчане. Помогите разобраться с проблемой У меня есть структура struct AuthData { public...

Запись данных класса в бинарный файл
У меня был просто ввод-вывод в файл, но надо бинарный и мне выдает ошибку: "error 'class komplekt_n::komplekt' has no member named...

запись данных с однонарпямленого списка в бинарный файл
С клавиатуры нужно ввести массив строк об успеваемости студентов: фамилия, № зачетки и оценку по 5 предметам. Затем перезаписать их в...

Запись и чтение данных из конструктора в бинарный файл
есть метод if (!File.Exists(file_name)) { return;} List<MainMethots> temp_list = new List<MainMethots>(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера . . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru