Найти - Пользователи
Полная версия: чтение и запись бинарного файла
Начало » Python для новичков » чтение и запись бинарного файла
1
ilnur
здравствуйте

прочитал весь форум по данному вопросу. но что то никак не разобрался.

1. читаю файл побайтово:
file=open('c:\\1.dat','rb')
data=file.read(1)
file.close()
print ('data = '+str(data[0]))
получаю значение
data = 21
как теперь переветси его, в переменную в нормальном виде, т.е. в букву ‘d’
если открыть файл в текстовом формате то это буква ‘d’

2. записываю бинарный файл
import struct
file=open('c:\\2.dat','wb')
file.write(struct.pack('L',26))
file.close()
но в файл записывается 4 байта: 1А 00 00 00
мне надо чтоб только один байт. что я делаю не так. спасибо

спасибо

P.S. нет ли где описание модуля struct на русском языке
igor.kaist
Документация лежит здесь
http://docs.python.org/library/struct.html
Ты упаковываешь число 26 в unsigned long, которое занимает 4 байта… посмотри в табличке в доках.
По поводу чтения.
ord('d')==100, открой файл через hex редактор, и посмотри что да как…
ilnur
igor.kaist
Документация лежит здесь
http://docs.python.org/library/struct.html
Ты упаковываешь число 26 в unsigned long, которое занимает 4 байта… посмотри в табличке в доках.
спасибо понял
прописал вот так. файл получается правильный
file.write(struct.pack('b',i))
igor.kaist
По поводу чтения.
ord('d')==100, открой файл через hex редактор, и посмотри что да как…
ошибся в вопросе. извиняюсь

я получаю не 21, а 100 конечно (64 в hex)
а как перевести его в значение ‘d’?
igor.kaist
chr(100)
обратно соответственно ord('d')
ilnur
igor.kaist
chr(100)
обратно соответственно ord('d')
спасибо. пробовал
chr(100)
но чето с утра не работало. а щас все нормально. чудеса.
спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB