Python - ...

Здравствуйте.

Есть тут кто-то кто в питоне (2.7) немного понимает? Как в этом странном языке записать в файл массив байтов? А потом прочитать заданное количество байт? Я не питонист, но надо сделать небольшую программу для управления устройством.


Почему это так сложно? В добром дотнете проcто File.WriteAllBytes() и поехали дальше, а здесь какие-то бессмысленные конструкции и ничего в итоге.  "Type error: must be string or buffer, not list" что за буфер, где взять?

Кучу времени уже потерял.


Строку записать легко и есть есть много примеров, а байты все старательно обходят, видимо мало кто знает как это сделать.

Вы смотрите срез комментариев. Показать все
DELETED
Автор поста оценил этот комментарий

Питон прост. Очень прост. И записывать в файл умеет только "string or buffer". А список не умеет. Как и "C" какой-нить.


open("filename.txt", "wb").write("".join(list_of_bytes))


Наверное, как-то так.

раскрыть ветку (4)
Автор поста оценил этот комментарий

к сожалению нет:


byte=[27,64]

......

prnDev.write("".join(byte))

TypeError: sequence item 0: expected string, int found



к строке числа не join'ятся

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
Вот тут есть небольшое описание, может вам поможет: https://webkul.com/blog/using-io-for-creating-file-object/
DELETED
Автор поста оценил этот комментарий

Ну, вообще-то, byte=[27,64] это список не байт, а чисел.


В таком случе, как советовали, надо использовать bytearray:

prnDev.write(bytearray(byte))

Автор поста оценил этот комментарий

Вариант-костыль: Int = 2 байта = 2 символа ASCII. Переконвертируете и пишете как String в файл. Главное - со старшинством байт не накосячить.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку