summaryrefslogtreecommitdiff
path: root/day1/task1
diff options
context:
space:
mode:
Diffstat (limited to 'day1/task1')
-rw-r--r--day1/task1/task1.py40
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}"')