Несколько советов:
- Не используйте заглавные буквы, кроме имен
class
. - Используйте разные имена переменных при обращении к разным вещам.(т.е. не используйте
Filenames = open("beloved.txt", mode="rb")
, если у вас уже есть глобальная версия этой переменной, и локальная версия этой переменной, и , теперь вы переназначаете ее для обозначения чего-то другого снова !! Такое поведение приведет к головным болям ...
Основная проблема скрипта - попытка открыть файл вне оператора try
. Вы можете простопереместите ваш код в пределах try:
! Я также не понимаю except FileNotFoundError as err:
, когда вы не используете err
. Вы должны переписать это в except FileNotFoundError:
в этом случае:)
def count_words(file):
try:
with open(file) as fill_object:
contentInFill = fill_object.read()
words = contentInFill.rsplit()
word_length = len(words)
print("The file " + file + " has " + str(word_length) + " words.")
with open("beloved.txt", mode="rb") as other_file:
data = other_file.read()
return data
except FileNotFoundError:
print("Cant find the file name")
filenames = ["anna.txt", "gatsby.txt", "don_quixote.txt", "beloved.txt", "mockingbird.txt"]
for filename in filenames:
count_words(filename)
Я также не понимаю, почему у вас есть функция return data
, когда данные считываются из одного и того же файла, независимо от того, что file
вы вводите в функцию ??Вы получите одинаковый результат во всех случаях ...