Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2010 17:13:29

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Обработка текста

вот так вроде бы работает

name_str = 'имя'
name_str.decode("cp1251")
if string.find(linex, name_str) != -1:
#.......



Офлайн

#2 Март 1, 2010 17:30:18

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

Обработка текста

>>> a = 'gg'
>>> b = 'lologglolo'
>>> b.find(a)
4
>>> a in b
True
>>> a = 'bb'
>>> b.find(a)
-1
>>> a in b
False



Офлайн

#3 Март 1, 2010 20:56:27

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка текста

bazooka
>>> a = 'gg'
>>> b = 'lologglolo'
>>> b.find(a)
4
>>> a in b
True
>>> a = 'bb'
>>> b.find(a)
-1
>>> a in b
False
bazooka, а что этот кода кусок нам говорит? Вроде всё ожидаемо, никаких странностей…

sp3
вот так вроде бы работает
name_str = 'имя'
name_str.decode("cp1251")
if string.find(linex, name_str) != -1:
#.......
Можно писать так:
name_str = 'имя'
if string.find(linex, name_str.decode("cp1251")) != -1:
#.......



Офлайн

#4 Март 1, 2010 21:20:48

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Обработка текста

bazooka
a in b
при создании строки с рус буквами в скрипте все норм работает,
но при чтении из файла….. гемор



Офлайн

#5 Март 1, 2010 21:27:34

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Обработка текста

UsCr
name_str = ‘имя’ if string.find(linex, name_str.decode(“cp1251”)) != -1: #…….
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xc8 in position 0: ordinal not in range(128)

загадочный питон :)



Офлайн

#6 Март 1, 2010 21:33:10

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

Обработка текста

эт я к тому что если нужно проверить есть ли подстрока в строке то может это и проверить, а не искать ее



Офлайн

#7 Март 1, 2010 21:49:47

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Обработка текста

sp3
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xc8 in position 0: ordinal not in range(128)
питоновский шел висел и PyScripter : похоже изза этого все переглючило :) сейчас даже так работает
file_in ='primer.txt'
f_in = open(file_in, 'r')

name_str = 'Имя'

for linex in f_in.readlines():
if name_str in linex:
print('ok')


f_in.close()

x = raw_input('x = ')



Офлайн

#8 Март 2, 2010 08:15:29

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка текста

Последнее время всё больше бодобных глюков… Видимо, приближение 2012 сказывается ;)



Офлайн

#9 Март 2, 2010 12:26:58

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

Обработка текста

Составил скрипт считывающий построчно, но видимо задачку таким образом не решить. Попробовал сразу весь файл считать, но столкнулся с проблемкой.

Кусок из распечтаки содержимого переменной l

…, ‘Имя\n’, ‘1\n’, ‘\n’, ‘Привязка\n’…

Написал
if ‘Имя\n’ in l:
print ???

А вот как написать что распечатать не знаю. Мне нужно распечатать значение 1
Как это сделать?



Офлайн

#10 Март 2, 2010 22:17:42

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Обработка текста

Divergent вот почти написал , доработай ;)

# -*- coding:Utf-8 -*-

file_in ='primer.txt'
file_out = 'out.txt'

f_in = open(file_in, 'r')
f_out = open(file_out, 'a')

name_str = 'Имя'
priv_str = 'Прив'


for linex in f_in.readlines():
if name_str in linex:
f_out.write('\n')

if (priv_str not in linex) and (name_str not in linex) :
linex = linex.split('\n')
f_out.write('\t%s'%linex[0]) # \t znak TAB

f_in.close()
f_out.close()



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version