Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 3, 2010 11:37:36

Tobur
От:
Зарегистрирован: 2010-01-22
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

split

# coding=UTF-8
f = open('log.txt', 'r')
g = f.read()
print 'Массив слов'
print g
print 'Разделяем запятой'
g = g.split(',')
print g
Результат:
Массив слов
Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези
Разделяем запятой
['\xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 \xcf\xf0\xe8\xe2\xe5\xf2 \xcf\xee\xea\xe0 \xe0\xed\xe8\xec\xe5 \xe1\xee\xe5\xe2\xe8\xea \xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0 \xf4\xfd\xed\xf2\xe5\xe7\xe8 ']
что за страшные символы? по книге просто разделяет запятыми, но не декодирует в такую бяку. Как исправить?
Нашел в книге что это вроде как упакованные двоичные данные, попробовал исправить:

# coding=UTF-8
import struct
f = open('log.txt', 'r')
g = f.read()
print 'Массив слов'
print g
print 'Разделяем запятой'
g = g.split(',')
h = struct.unpack('>i4sh',g)
print h
На выходе:
Массив слов
Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези
Разделяем запятой
Traceback (most recent call last):
File "D:\mydoc\NetBeansProjects\test\readfile.py", line 9, in <module>
h = struct.unpack('>i4sh',g)
File "C:\Python25\lib\struct.py", line 87, in unpack
return o.unpack(s)
struct.error: unpack requires a string argument of length 10
хелп



Офлайн

#2 Фев. 3, 2010 13:18:19

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

split

Ай! Это не упакованные двоичные данные. Это список из одной вашей строки.



Офлайн

#3 Фев. 3, 2010 13:39:46

Tobur
От:
Зарегистрирован: 2010-01-22
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

split

ну я так и хотел, только я думал у меня будет что то наподобие:



Офлайн

#4 Фев. 3, 2010 13:42:28

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

split

А у тебя разве запятыми разделяется? По моему пробелами…



Офлайн

#5 Фев. 3, 2010 13:45:47

gabin
От:
Зарегистрирован: 2009-03-07
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

split

g = g.split(' ')



Офлайн

#6 Фев. 3, 2010 13:46:38

Tobur
От:
Зарегистрирован: 2010-01-22
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

split

блин да оно и обычный русский список в бяку превращает:

k = []
k = ['привет','пока','е']
print k

['\xef\xf0\xe8\xe2\xe5\xf2', '\xef\xee\xea\xe0', '\xe5']
(((( не дружит питон с русским. Я скрипт маленький учебный свой, импортировал py2exe, так вот, там в начале принтом выводилось описание, что делать нужно, в итоге козябрики. Ну я решил потом когда будет уже стоящая программа какая то, разберусь, а тут уже с обычным преобразованием в список бяку выдает.



Офлайн

#7 Фев. 3, 2010 13:48:53

Tobur
От:
Зарегистрирован: 2010-01-22
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

split

у меня сейчас вот такой код:

f = open('log.txt', 'r')
g = f.read()
print 'Массив слов'
print g
print 'Создаем список'
k = g.split(' ')
print k

Массив слов
Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези Привет Пока аниме боевик фантастика фэнтези
Создаем список
['\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '\xcf\xf0\xe8\xe2\xe5\xf2', '\xcf\xee\xea\xe0', '\xe0\xed\xe8\xec\xe5', '\xe1\xee\xe5\xe2\xe8\xea', '\xf4\xe0\xed\xf2\xe0\xf1\xf2\xe8\xea\xe0', '\xf4\xfd\xed\xf2\xe5\xe7\xe8', '']



Офлайн

#8 Фев. 3, 2010 13:50:03

Tobur
От:
Зарегистрирован: 2010-01-22
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

split

грубо говоря я хочу получать нормальный русский список, а не ‘\xcf\xf0\xe8\xe2\xe5\xf2’



Офлайн

#9 Фев. 3, 2010 14:03:33

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

split

Это потому что печатается __repr__.

Офлайн

#10 Фев. 3, 2010 14:08:30

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

split

Печатается __repr__. Сделай, например, так:

for i in k:
print i



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version