Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > строки (длина, find и вырезка)


Автор: bel_nikita 9.2.2007, 22:40
что не пойму, как работать со строками
К примеру, нужно прочитать текстовый файл и найти там строку и распечатать следующие 20 символов
Код


import os, string

VARIABLE_IN_FILE = "APP_BUILD"
f = open("E:\\Projects\\phar\\atca\\atdm-02\\Projects\\ATDM-02\\application\\version.cpp","r",os.O_TEXT)
data = f.read()
print data
index = string.find(data,VARIABLE_IN_FILE) # string.find вернет число index, но как с ним работать дальше?
stroka = data[index] # хочу присвоить 20 сиволов идущих после index, но как?
print stroka
f.close()



З.Ы.: читал манула, но так и не разобрался...

Автор: sir_Jack 10.2.2007, 00:29
я такие задачи делаю приблизительно так:

Код

# открываем и читаем файл
f = open('path_to_file','rb')
data = f.read()
f.close()

# ищем подстроку
pos = data.find('APP_BUILD')
#(если не найдем - pos = -1)

# выводим подстроку поиска и 20 символов за ней
my_str = data[pos:pos+len('APP_BUILD')+20]

# или только 20 символов после подстроки поиска
my_str2 = data[pos+len('APP_BUILD'):pos+len('APP_BUILD')+20]

print my_str, my_str2


код писал прямо в окне - могу ошибиться с индексами, нов целом должно работать

data[a:b] - вырезаем из строки data подстроку с символа а по символ b
data[a:] - то же, но с символа а по конец строки
data[:b] - с начала строки по символ b

есть еще отрицательные индексы - суть аналогична smile

рекомендую, если хочешь разобраться с этим вопросом поиграться со строкой data= '0123456789':
data[:5], data[2:7], data[0:1], data[:-4] и пр smile

удачи 

Автор: pythonwin 10.2.2007, 13:31
sir_Jack,  ++1 smile

Автор: V.A.KeRneL 11.2.2007, 14:15
Цитата(bel_nikita)

спасибо
теперь понятно smile

bel_nikita, ну Вы же не новичок, не забывайте, пожалуйста, помечать свои вопросы решёнными, оч.прошу!

Автор: bel_nikita 12.2.2007, 12:09
А как вырезать символ из строки?

Автор: diam 12.2.2007, 13:25
Цитата(bel_nikita @  12.2.2007,  15:09 Найти цитируемый пост)
А как вырезать символ из строки? 

Код

'А как вырезать символ из строки?'[4]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)