Найти - Пользователи
Полная версия: split
Начало » Python для новичков » split
1 2
Tobur
# 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
хелп
truporez
Ай! Это не упакованные двоичные данные. Это список из одной вашей строки.
Tobur
ну я так и хотел, только я думал у меня будет что то наподобие:
expee
А у тебя разве запятыми разделяется? По моему пробелами…
gabin
g = g.split(' ')
Tobur
блин да оно и обычный русский список в бяку превращает:
k = []
k = ['привет','пока','е']
print k

['\xef\xf0\xe8\xe2\xe5\xf2', '\xef\xee\xea\xe0', '\xe5']
(((( не дружит питон с русским. Я скрипт маленький учебный свой, импортировал py2exe, так вот, там в начале принтом выводилось описание, что делать нужно, в итоге козябрики. Ну я решил потом когда будет уже стоящая программа какая то, разберусь, а тут уже с обычным преобразованием в список бяку выдает.
Tobur
у меня сейчас вот такой код:
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', '']
Tobur
грубо говоря я хочу получать нормальный русский список, а не ‘\xcf\xf0\xe8\xe2\xe5\xf2’
Ferroman
Это потому что печатается __repr__.
expee
Печатается __repr__. Сделай, например, так:
for i in k:
print i
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