Поиск-замена в кодировке dos

 
0
 
Python
ava
Suppir | 22.06.2010, 14:46
Привет!

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

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


Kommentare (5)
ava
unicross | 22.06.2010, 14:59 #
Для 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")
ava
Suppir | 22.06.2010, 15:06 #
Потестил программу на версии 3.1. По ходу, скрипт где-то останавливается по неизвестной причине. Потому что 2.txt слишком маленький получается (скрипт не доходит до конца файла).
ava
Suppir | 22.06.2010, 15:28 #
В консоли мелькает какая-то ошибка, но разглядеть не могу :(
ava
shupg | 22.06.2010, 16:11 #
а в try..except обернуть и распечатать (хоть бы и в тот же файл)?

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

Может быть как-то STDERR можно выдать в файл?
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  shupg   unicross   Suppir
advanced
Absenden