summaryrefslogtreecommitdiff
path: root/day1/task4/task4.py
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2019-03-11 22:54:30 +0400
committerAndrew <saintruler@gmail.com>2019-03-11 22:54:30 +0400
commit5e4ba61600e76d6abab144767312fdf19663f373 (patch)
tree3837abeeafaba1598c63b9eb619e83c824f1c125 /day1/task4/task4.py
parent19c117c32bf7de16f86a45b62182c9fae9ef9374 (diff)
Починил четвертую задачу
Diffstat (limited to 'day1/task4/task4.py')
-rw-r--r--day1/task4/task4.py61
1 files changed, 41 insertions, 20 deletions
diff --git a/day1/task4/task4.py b/day1/task4/task4.py
index 0fcf928..2583cb4 100644
--- a/day1/task4/task4.py
+++ b/day1/task4/task4.py
@@ -5,26 +5,47 @@ import os
html_path = os.path.join(os.getcwd(), 'task4_data.html')
-if os.access(html_path, os.R_OK):
- with open(html_path) as f:
- data = f.read()
-
- # Не знаю зачем, но в задании так написано
+folder_path = ''
+
+# Не знаю зачем, но в задании так написано
+try:
+ os.mkdir('../htmls')
+ folder_path = '../htmls'
+except PermissionError:
+ print('Директория на уровень выше не доступна для записи.')
+ print('Создаем папку в текущей директории...')
try:
- os.mkdir('../htmls')
- os.chdir('../htmls')
+ os.mkdir('htmls')
+ folder_path = 'htmls'
except PermissionError:
- print('Директория на уровень выше не доступна для записи.')
- print('Создаем папку в текущей директории...')
- try:
- os.mkdir('htmls')
- except PermissionError:
- print('Текущая директория не доступна для записи. Завершаем работу...')
- quit()
+ print('Текущая директория не доступна для записи. Завершаем работу...')
+ quit()
+
+try:
+ html_file = open(html_path)
+ os.chdir(folder_path)
+ ascii_file = open('ascii_cleared.html', 'w', encoding='utf-8')
+ body_file = open('body_cleared.html', 'w', encoding='utf-8')
+
+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:
+ data = html_file.read()
cleared_data = ''.join(filter(lambda char: char in string.printable, data))
- with open('ascii_cleared.html', 'w', encoding='utf-8') as f:
- f.write(cleared_data)
+ ascii_file.write(cleared_data)
+
+ ###################
body_cleared = re.sub(
r'<BODY>(.|\n)*?</BODY>',
@@ -32,8 +53,8 @@ if os.access(html_path, os.R_OK):
data
)
- with open('body_cleared.html', 'w', encoding='utf-8') as f:
- f.write(body_cleared)
+ body_file.write(body_cleared)
-else:
- print('Файл "{}" не доступен для чтения'.format(html_path))
+ html_file.close()
+ ascii_file.close()
+ body_file.close()