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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как упростить код? работа с файлами: чтение, запись 
V
    Опции темы
proDiva
Дата 11.10.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

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



Ну вот, сама нашла компактный вариант кода, и никто не похвалил smile  закрываю тему
PM MAIL ICQ   Вверх
pythonwin
Дата 11.10.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

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



Цитата(proDiva @  11.10.2006,  22:47 Найти цитируемый пост)
Ну вот, сама нашла компактный вариант кода, и никто не похвалил smile  закрываю тему 

репу смотри smile
PM WWW GTalk Jabber   Вверх
proDiva
Дата 11.10.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

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



Цитата(pythonwin @  11.10.2006,  15:51 Найти цитируемый пост)
репу смотри smile

какую-такую репу?))
PM MAIL ICQ   Вверх
dvska
  Дата 11.10.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(proDiva @  11.10.2006,  15:47 Найти цитируемый пост)
Ну вот, сама нашла компактный вариант кода, и никто не похвалил smile  закрываю тему 

Брааааавооооо, proDiva!!!!! smile Брааааавооооо!!!!!
    

А так?
Код

blocks = open('in.txt').read().split(')(')    # TL091618.TXT
open('out1.txt', "w").write(blocks[0]+')('+'\n')
open('out2.txt', "w").write( ')('.join(blocks[1:])[1:] )

--------------------
PM MAIL   Вверх
Cr@$h
Дата 11.10.2006, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

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



Цитата(pythonwin @  11.10.2006,  13:26 Найти цитируемый пост)
и сколько раз в год можно менять статус, если есть 2000 постов?

Сколько угодно.
Да, жалко, что все слова-статусы в мужском роде написаны. Это уже избитая тема.


Добавлено @ 20:18 
Цитата(proDiva @  11.10.2006,  16:59 Найти цитируемый пост)
какую-такую репу?))

У тебя: Репутация: 6.
PM MAIL ICQ   Вверх
dvska
Дата 11.10.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



--------------------
PM MAIL   Вверх
proDiva
Дата 12.10.2006, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

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



Цитата(dvska @  11.10.2006,  17:17 Найти цитируемый пост)
Брааааавооооо, proDiva!!!!! smile Брааааавооооо!!!!!

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

Добавлено @ 08:15 
Цитата(Cr@$h @  11.10.2006,  20:14 Найти цитируемый пост)
Да, жалко, что все слова-статусы в мужском роде написаны. Это уже избитая тема.

А для кого тут нужен статус в женском роде? меня в мужском роде абсолютно устраивает smile 
PM MAIL ICQ   Вверх
FunnyFalcon
Дата 12.10.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



proDiva молодец, конечно. НО НЕ СТОИТ ПЕРЕОПРИСВАИВАТЬ ИМЕНА ВСТРОЕННЫХ ФУНКЦИЙ/ТИПОВ (я имею в виду list).
Кроме того проще (и эфектвнее) сделать без map:
Код

def zamena(self, file1, file2):
    f1=open(file1, "r")
    list1=f1.readlines()
    f1=open(file1, "w")
    f2=open(file2, "w")
    k = list1.index([line for line in list if ord(line[0]) == 138][1])
    f1.writelines([line for line in list1[:k]])
    f2.writelines([line for line in list1[k:]])
    f1.close()
    f2.close()

А совсем правильно:
Код

def zamena(self, file1, file2):
    f1=open(file1, "r")
    list1=f1.readlines()
    f1=open(file1, "w")
    f2=open(file2, "w")
    try:
        k = list1.index([line for line in list1 if ord(line[0]) == 138][1])
        f1.writelines([line for line in list1[:k]])
        f2.writelines([line for line in list1[k:]])
    except IndexError:
        f1.writelines(list1)
    f1.close()
    f2.close()

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


 




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


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

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