
11.07.2009, 21:49
|
|
Постоянный
Регистрация: 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..
|
|
|