Форум сайта python.su
А вот если выводить несколько элементов, то не хочет….
f=open('2', 'r+')
for line in f.readlines():
s=line.decode('utf-8','ignore')
d = s.split('|||')
if len(d)==29:
n-=1
if d[0].find(d[25])>-1 or d[25]=='-':
a=d[0]
else:
a=d[0],'(',d[25],')'
if d[1].find(d[27])>-1 or d[27]=='-':
b=d[1]
else:
b=d[1],'(',d[27],')'
print str(a).encode('utf-8','ignore')
(u'\u0425\u041a \u0421\u043f\u0430\u0440\u0442\u0430\u043a', '(', u'\u041c\u043e\u0441\u043a\u0432\u0430', ')')
Traceback (most recent call last):
File "/home/vladimir/Projects/Python/files2.py", line 36, in <module>
if __name__ == '__main__': main()
File "/home/vladimir/Projects/Python/files2.py", line 35, in main
print str(a).encode('utf-8','ignore')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)
Офлайн
vvivanstr по использует кодек по умолчанию. Обычно это аскии .
print str(a).encode('utf-8','ignore')
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-6: ordinal not in range(128)
Офлайн
vvivanstr по использует кодек по умолчанию. Обычно это аскии .
print str(a).encode('utf-8','ignore')
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-6: ordinal not in range(128)
Офлайн
без СТР он выдает ошибку… ‘tuple’ object has no attribute ‘encode’
Офлайн
Попробуй так:
import string
f=open('2', 'r+')
for line in f:
d=string.split(unicode(line,'utf-8'),'|||')
print d
Офлайн
так печатается строка вида u'\u041c\u0438'
Но! Если выводить не весь список, а только отдельные его элементы, то все работает (раньше нормально выводилось по 1 одному элементу, а по несколько не хотело). Большое спасибо всем за помощь!
Офлайн