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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск-замена в кодировке dos 
:(
    Опции темы
Suppir
Дата 22.6.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет!

Подскажите, пожалуйста, код следующей программы (если не сложно):

1. Нужно открыть файл 1.txt (у него кодировка CP866/dos) для чтения
2. Нужно создать новый файл 2.txt в той же самой кодировке DOS для записи
3. Читая каждую строку из 1.txt, записывать ее в 2.txt, если строка начинается с символа "#"




Это сообщение отредактировал(а) Suppir - 22.6.2010, 13:47
PM MAIL   Вверх
unicross
Дата 22.6.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для Python 2:
Код
# -*- coding: cp866 -*-
f = open("2.txt", "w")
for line in open("1.txt", "r"):
    if line.startswith("#"):           # Если пробелы не допустимы
    #if line.lstrip().startswith("#"): # Если пробелы допустимы
        f.write(line)
f.close()
raw_input("OK")

PM MAIL WWW   Вверх
Suppir
Дата 22.6.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Потестил программу на версии 3.1.  По ходу, скрипт где-то останавливается по неизвестной причине. Потому что 2.txt слишком маленький получается (скрипт не доходит до конца файла). 

Это сообщение отредактировал(а) Suppir - 22.6.2010, 15:15
PM MAIL   Вверх
Suppir
Дата 22.6.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В консоли мелькает какая-то ошибка, но разглядеть не могу :(
PM MAIL   Вверх
shupg
Дата 22.6.2010, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а в try..except обернуть и распечатать (хоть бы и в тот же файл)?

или просто настроить нормальный IDE, типа eclipse
PM MAIL   Вверх
Suppir
Дата 22.6.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



"а в try..except обернуть"
Каюсь, я нуб в Python smile Хотел просто сравнить скорость с Perl  в данной задаче (сделать поиск-замену в больших файлах). 
До этого сравнил Ruby - оказалось, что Ruby 1.9 работает раз в 10 медленней перла на данной конкретной задаче.

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


 




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


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

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