Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2014 11:34:39

BlackRabbit
Зарегистрирован: 2013-12-03
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите, как сформулировать начало ФУНКЦИИ?

Есть код, который “чистит” текстовые файлы с старыми символами и меняет их на новые. Хочу вбить его в функцию, которая принимала бы имя файла с клавиатуры и выдавала результат. Вроде просто, но… Вот наваял:

import os
print("Введите номер файла: ", end='')
name = str(input())
def main():
	with name as input:
		russianAlphabet = set("йфяцычувскамепинртгоьшлбщдюзжхэъёЙФЯЦЫЧУВСКАМЕПИНРТГОЬШЛБЩДЮЗЖХЭЪЁ")
		allFiles = [item for item in os.listdir("Folder") if item.endswith("txt") and not item.startswith(".")]
		for name in allFiles[1:2]:
		    print(name)
		    wordList = []
		    with open("Folder/" + name, "r", encoding = "utf-8") as inp:
		        for line in inp:
		            if line[0] == "№":
		                continue
		            numericSymbolInWord = False
		            tempWord = []
		            txt = line.lower()
		            for char in txt:
		                if char == "̃" or char == "҂":
		                    numericSymbolInWord = True
		                    continue
		                elif char == "ѣ" or char == "є":
		                    tempWord.append("е")
		                elif char == "і":
		                    tempWord.append("и")
		                elif char == "ѳ":
		                    tempWord.append("ф")
		                elif char == "-":
		                    if len(tempWord) == 0:
		                        continue
		                    else:
		                        if tempWord[-1] == "ъ":
		                            tempWord[-1] = "-"
		                        else:
		                            tempWord.append("-")
		                elif char not in russianAlphabet:
		                    if len(tempWord) > 0 and not numericSymbolInWord:
		                        if tempWord[-1] == "ъ":    
		                            wordList.append("".join(tempWord[:-1]))
		                            tempWord = []
		                        else:
		                            wordList.append("".join(tempWord))
		                            tempWord = []
		                    else:
		                        tempWord = []
		                        numericSymbolInWord = False
		                else:
		                    tempWord.append(char)
		            if len(tempWord) > 0 and not numericSymbolInWord:
		                if tempWord[-1] == "ъ":    
		                    wordList.append("".join(tempWord[:-1]))
		                else:
		                    wordList.append("".join(tempWord))
		print(" ".join(wordList))

Офлайн

#2 Апрель 15, 2014 11:40:04

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Подскажите, как сформулировать начало ФУНКЦИИ?

ЯННП

Офлайн

#3 Апрель 15, 2014 11:49:53

BlackRabbit
Зарегистрирован: 2013-12-03
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите, как сформулировать начало ФУНКЦИИ?

?

Офлайн

#4 Апрель 15, 2014 23:54:36

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Подскажите, как сформулировать начало ФУНКЦИИ?

BlackRabbit

BlackRabbit
with name as input:
это вообще что? и зачем? Перекрытие зарезервированных слов - в данном случае input это встроенна функция, вы же ее выше вызываете.
И да, вы получили с клавиатуры имя файла, определили функцию, ну а вызвать ее ?
В таком виде, в котором пишете вы, name будет видна внутри main.

BlackRabbit
?
Формулируйте вопрос по человечески - ничего же не понятно



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Апрель 20, 2014 21:46:56

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

Подскажите, как сформулировать начало ФУНКЦИИ?

Я дико извиняюсь, но почему бы не использовать хотя бы str.replace для замены символов? О паттернах я и не говорю.
А по теме, (если я правильно понял) можно работать через argv. Читаем: https://docs.python.org/2/library/sys.html

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version