Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогите найти ошибку  (Прочитано 1319 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн A.J

  • Автор темы
  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Помогите найти ошибку
« : 13 Августа 2014, 13:11:17 »
Добрый день !
Я  сейчас читаю книгу Лутц М. - Изучаем Python (4-е издание)- 2011.
Я до читал до  сохранение и интерпретация   упакованных двоичных данных в файлах.
Я набрал код как в книги во тон.

Код: (python) [Выделить]
F = open(r'D:\book\datafile.bin','wb')# Открыть файл для записи в двоичном режиме
import struct
data = struct.pack('>i4sh', 7, 'spam', 8)# Создать пакет двоичных данных
print(data)
F.write(data)
F.close()

F = open(r'D:\book\datafile.bin','rb')
data = F.read()
print(data)

Но выходит ошибка
Цитата: compiler
C:\Python33\python.exe "D:/Mark  Lutz/myfile/struct_fale.py"
Traceback (most recent call last):
  File "D:/Mark  Lutz/myfile/struct_fale.py", line 13, in <module>
    data = struct.pack('>i4sh', 7, 'spam', 8)# Создать пакет двоичных данных
struct.error: argument for 's' must be a bytes object

Что надо сделать чтобы заработала все спасибо заранее .
« Последнее редактирование: 13 Августа 2014, 21:19:31 от Чистый »

Оффлайн Стажер

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
Re: Помогите найти ошибку
« Ответ #1 : 14 Августа 2014, 23:57:43 »
Я, конечно, точно не знаю, но возможно ты пропустил  b в третьем аргументе согласно этому ресурсу.

data = struct.pack('>i4sh', 7, b'spam', 8)

Оффлайн A.J

  • Автор темы
  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Помогите найти ошибку
« Ответ #2 : 17 Августа 2014, 09:22:39 »
Точно b  не хватало  странно почему такие опечатки   в книги спасибо тема закрыта.  :D

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.