diff options
Diffstat (limited to 'day1/task1/task1.py')
| -rw-r--r-- | day1/task1/task1.py | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/day1/task1/task1.py b/day1/task1/task1.py index 61ab4cf..a763a97 100644 --- a/day1/task1/task1.py +++ b/day1/task1/task1.py @@ -1,19 +1,37 @@ import os +CHUNK_SIZE = 1024 + character = input('Введите один символ: ') -while len(character) > 1: +while len(character) != 1: character = input('Введите РОВНО один символ: ') path = os.path.join(os.getcwd(), 'task1_data.txt') -if not os.access(path, os.R_OK): - print('Файл "{}" не доступен для чтения'.format(path)) + + +try: + f = open(path) + +except FileNotFoundError as e: + exception_path = str(e).strip('[Errno 2] No such file or directory:')[1:-1] + print(f'"{exception_path}" не существует') + +except PermissionError as e: + exception_path = str(e).strip('[Errno 13] Permission denied:')[1:-1] + print(f'Файл "{exception_path}" не доступен для чтения/записи') + +except IsADirectoryError as e: + exception_path = str(e).strip('[Errno 21] Is a directory:')[1:-1] + print(f'"{exception_path}" является директорией') + else: - with open(path) as f: - data = f.read(1024) - i = data.count(character) - while data: - data = f.read(1024) - i += data.count(character) - - print('В данном файле {} символов "{}"'.format(i, character)) + data = f.read(CHUNK_SIZE) + i = data.count(character) + while data: + data = f.read(CHUNK_SIZE) + i += data.count(character) + + f.close() + + print(f'В данном файле {i} символов "{character}"') |