Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2014 14:43:00

fox85
Зарегистрирован: 2014-05-30
Сообщения: 56
Репутация: +  -1  -
Профиль   Отправить e-mail  

Помогите найти ошибку

Добрый день !
Я сейчас читаю книгу Лутц М. - Изучаем Python (4-е издание)- 2011.
Я до читал до сохранение и интерпретация упакованных двоичных данных в файлах.
Я набрал код как в книги во тон.

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)

Но выходит ошибка

C:\Python33\python.exe “DMark Lutz/myfile/struct_fale.py”
Traceback (most recent call last):
File “DMark 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

Что надо сделать чтобы заработала все спасибо заранее .

Офлайн

#2 Авг. 13, 2014 15:08:04

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Помогите найти ошибку

fox85

Оберни код в теги, чтобы было

так



Офлайн

#3 Авг. 13, 2014 15:33:09

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Помогите найти ошибку

>>> import struct
>>> f = open('test.bin', 'wb')
>>> data = struct.pack(bytes('>i4sh'), 7, 'spam', 8)
>>> print data
^Gspa
>>> f.write(data)
>>> f.close()
>>> f = open('test.bin', 'rb')
>>> data = f.read()
>>> print data
^Gspa 
>>> 

Офлайн

#4 Авг. 13, 2014 16:13:56

fox85
Зарегистрирован: 2014-05-30
Сообщения: 56
Репутация: +  -1  -
Профиль   Отправить e-mail  

Помогите найти ошибку

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

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

data = struct.pack(bytes ('>i4sh'), 7, ‘spam’, 8 )
TypeError: string argument without an encoding

Не работает

Офлайн

#5 Авг. 18, 2014 17:20:59

yv84
Зарегистрирован: 2014-08-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти ошибку

  ~  python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import struct
>>> data =struct.pack('>i4sh', 7, 'spam', 8)
>>> data
'\x00\x00\x00\x07spam\x00\x08'
>>> 
  ~  python3
Python 3.4.0 (default, Mar 22 2014, 17:10:43) 
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import struct
>>> data =struct.pack(b'>i4sh', 7, b'spam', 8)
>>> data
b'\x00\x00\x00\x07spam\x00\x08'

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version