Показать сообщение отдельно

  #5  
Старый 11.07.2009, 21:49
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

По заказу из этой темы написал парочку небольших реплэйсеров.
1. Создает файл, в котором указанная последовательность символов заменена на новую.
Код:
#!/usr/bin/env python3

filename = str(input("Enter file name: "))
S_old = str(input("Enter first string: "))
S_new = str(input("Enter second string: "))

with open(filename) as fin:
    with open("out.txt", "a") as fout:
        for line in fin:
            if line.find(S_old) == -1:
                fout.write(line)
            else:
                new_line = line
                for i in range(new_line.count(S_old)):
                    new_line = new_line.replace(S_old, S_new)
                fout.write(new_line)


2. Создает файл, в котором все транслитерируемые буквы английского алфавита заменены на русские, а русские буквы, имеющие внешне сходные аналоги в английском алфавите, на английские.
Код:
#!/usr/bin/env python3

import sys

Sym_for_change_ru = "аеорсухАВЕКМНОРСТХ"
Sym_for_change_en = "aeopcyxABEKMHOPCTX"

def Change_symbol(sym, lang):
    if lang == "ru":
        return Sym_for_change_en[Sym_for_change_ru.find(sym)]
    else: 
        return Sym_for_change_ru[Sym_for_change_en.find(sym)]      
    
filename = sys.argv[1]
Buffer = None

with open(filename) as fin:
    with open("out.txt", "w") as fout:
        for line in fin:
            for word in line:
                for symbol in word:
                    if symbol in Sym_for_change_ru:
                        fout.write(Change_symbol(symbol, "ru"))
                    elif symbol in Sym_for_change_en:
                        fout.write(Change_symbol(symbol, "en"))
                    else:
                        fout.write(symbol)

Последний раз редактировалось Fata1ex; 23.07.2009 в 03:17..
 
Ответить с цитированием