Найти - Пользователи
Полная версия: Подскажите, как сформулировать начало ФУНКЦИИ?
Начало » Центр помощи » Подскажите, как сформулировать начало ФУНКЦИИ?
1
BlackRabbit
Есть код, который “чистит” текстовые файлы с старыми символами и меняет их на новые. Хочу вбить его в функцию, которая принимала бы имя файла с клавиатуры и выдавала результат. Вроде просто, но… Вот наваял:
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))
Singularity
ЯННП
BlackRabbit
?
JOHN_16
BlackRabbit
BlackRabbit
with name as input:
это вообще что? и зачем? Перекрытие зарезервированных слов - в данном случае input это встроенна функция, вы же ее выше вызываете.
И да, вы получили с клавиатуры имя файла, определили функцию, ну а вызвать ее ?
В таком виде, в котором пишете вы, name будет видна внутри main.

BlackRabbit
?
Формулируйте вопрос по человечески - ничего же не понятно
fongostev
Я дико извиняюсь, но почему бы не использовать хотя бы str.replace для замены символов? О паттернах я и не говорю.
А по теме, (если я правильно понял) можно работать через argv. Читаем: https://docs.python.org/2/library/sys.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB