Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по файлам в Python 
:(
    Опции темы
Sergey912
Дата 7.4.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Растолкуйте немного по файлам, уже с час сижу ковыряю учебник и хочу найти что-то вроде "Работа с текстовыми файлами".
В Delphi и я с ними работал по принципу fopen() fwrite() fclose() и все.

В php есть полезная ф-я file_get_contents() - принимает url или путь к файлу, в итоге имею весь файл как строку.

Мне нужно ф-ю написать 
Код

str_replace_f(file, from, to)
 - откроет файл как строку и заменит в нем подстроку на новую, потом запишет все в этот же файл. Может в python есть что-то такого рода, раз он такой высокоуровневый? Нашел много по копированию, но по поиску-замене ничего подобного нет. Неужели все пошагово расписывать? 

И если пошагово, то каким классом базовым воспользоваться, а то там много всего и с дескрипторами и с сккетами и прочим понаделано.
Вобщем хотелось бы с файлами работать как со строками+регулярки
Мжет модуль другой есть, а то пошагово как-то совсем никак нет желания возится :(

Это сообщение отредактировал(а) Sergey912 - 7.4.2007, 19:52
PM MAIL WWW   Вверх
setq
Дата 7.4.2007, 21:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Боюсь, что работа с файлами в Питоне немного менее высокоуровневая, чем в языке, где есть функция str_replace_f(file, from, to) . Но переживать и сдаваться из-за этого не стоит, потому что "пошаговость" ограничивается двумя шагами: (1) получение объекта файла с помощью функции open() и (2) вызов метода .read() или .write() в зависимости от того в каком режиме открыт файл.

Что касается работы с регэксп, то тут тоже немного сложнее, чем например в Перл или Руби, потому что придётся подключить библиотеку re. Советую также кроме документации по модулю re ознакомиться с документом э... в общем "Howto что-то там..." про регулярные выражения в Питоне) Легко найдёте в гугле.

Всё. Ртфм и удачи.
  Вверх
Void
Дата 7.4.2007, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 10
Всего: 173



Код
def str_replace_f(file, old, new):
    with f as open(file, 'r'):
        # заменит все подстроки, если это не то, что нужно,
        # есть третий параметр count
        s = f.read().replace(old, new)
    with f as open(file, 'w'):
        f.write(s)

Для версий до 2.5 переписать как:
Код
def str_replace_f(file, old, new):
    f = open(file, 'r')
    s = f.read().replace(old, new)
    f.close()
    f = open(file, 'w')
    f.write(s)
    f.close()

Цитата(Sergey912 @  7.4.2007,  21:22 Найти цитируемый пост)
Вобщем хотелось бы с файлами работать как со строками+регулярки

В чём проблема? Файлы читаются элементарно, регулярные выражения в модуле re.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Daevaorn
Дата 7.4.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



Код

def file_to_str( name ):
   return string.join( open( name ).readlines() )

PM MAIL WWW   Вверх
setq
Дата 7.4.2007, 22:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Daevaorn @  7.4.2007,  21:16 Найти цитируемый пост)
return string.join( open( name ).readlines() )


open(name).read() ?..
  Вверх
Sergey912
Дата 8.4.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Цитата

Питоне немного менее высокоуровневая, чем в языке, где есть функция str_replace_f(file, from, to) 

Собственно я такого языка пока не видел smile
Сам писал, там как часто использовал.


Цитата

В чём проблема? Файлы читаются элементарно, регулярные выражения в модуле re. 

Спасибо за помощь, решил спросить на всякий случай вдруг что-то уже готовое есть, да я просто не знал и писал бы одно и то же smile
PM MAIL WWW   Вверх
cherep
Дата 9.4.2007, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

Репутация: 1
Всего: 4



Это ж самые основы, ёли. ртфм!

Это сообщение отредактировал(а) cherep - 9.4.2007, 03:38
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.