text = open(string.__file__[:-1]).read() start = 0 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

text = open(string.__file__[:-1]).read() start = 0

Поиск

...

 

file.txt

 

str.txt

 

Поиск в строке можно осуществить с помощью метода find().Следующая программа выводит все функции,определенные в модуле оператором def:

 

import string

 

text = open(string.__file__[:-1]).read() start = 0

while 1:

found = text.find("def ", start)


 


if found == -1: break

 

print text[found:found + 60].split("(")[0] start = found + 1

 

Важным для преобразования текстовой информации является метод replace(),который рассматривается ниже:

 

>>> a = "Это текст , в котором встречаются запятые , поставленные не так."

>>> b = a.replace(" ,", ",")

>>> print b

 

Это текст, в котором встречаются запятые, поставленные не так.

 

Рекомендации по эффективности

 

При работе с очень длинными строками или большим количеством строк,применяемые операции могут по-разному влиять на быстродействие программы.

 

Например,не рекомендуется многократно использовать операцию конкатенации для склеивания большого количества строк в одну.Лучше накапливать строки в списке,а затем с помощью join() собирать в одну строку:

 

>>> a = ""

>>> for i in xrange(1000):

... a += str(i)           # неэффективно!

 

...

 

>>> a = "".join([str(i) for i in xrange(1000)]) # более эффективно

 

Конечно,если строка затем обрабатывается,можно применять итераторы,которые позволят свести использование памяти к минимуму.

 

Модуль StringIO

 

В некоторых случаях желательно работать со строкой как с файлом.Модуль StringIO как раз дает такую возможность.

 

Открытие"файла"производится вызовом StringIO().При вызове без аргумента-

 

создается новый"файл",при задании строки в качестве аргумента- "файл"открывается для чтения:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 50; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.006 с.)