diff options
Diffstat (limited to 'day1')
| -rw-r--r-- | day1/task2/task2.py | 36 | ||||
| -rw-r--r-- | day1/task2/task2_data_1.txt | 1 | ||||
| -rw-r--r-- | day1/task2/task2_data_2.txt | 4 | ||||
| -rw-r--r-- | day1/task3/task3.py | 31 | ||||
| -rw-r--r-- | day1/task4/task4.py | 60 | ||||
| -rw-r--r-- | day1/task4/task4_data.html | 13 | ||||
| -rw-r--r-- | day1/task5/task5.py | 20 | ||||
| -rw-r--r-- | day1/task5/task5_data.txt | 1 |
8 files changed, 166 insertions, 0 deletions
diff --git a/day1/task2/task2.py b/day1/task2/task2.py new file mode 100644 index 0000000..593df5b --- /dev/null +++ b/day1/task2/task2.py @@ -0,0 +1,36 @@ +import os + + +CHUNK_SIZE = 1024 + +write_path = os.path.join(os.getcwd(), 'task2_data_1.txt') +read_path = os.path.join(os.getcwd(), 'task2_data_2.txt') + +try: + write_file = open(write_path, 'a') + read_file = open(read_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: + write_file.write('\n\n\n') + + data = read_file.read(CHUNK_SIZE) + write_file.write(data) + while data: + data = read_file.read(CHUNK_SIZE) + write_file.write(data) + + # пожалуйста не мучайте меня я не хочу писать еще три expept'a + os.rename('task2_data_1.txt', 'task2_data_all.txt') + os.remove('task2_data_2.txt') diff --git a/day1/task2/task2_data_1.txt b/day1/task2/task2_data_1.txt new file mode 100644 index 0000000..60a2f18 --- /dev/null +++ b/day1/task2/task2_data_1.txt @@ -0,0 +1 @@ +khasdjkgkjdasghdsajkfvadskghha diff --git a/day1/task2/task2_data_2.txt b/day1/task2/task2_data_2.txt new file mode 100644 index 0000000..ae1e9a8 --- /dev/null +++ b/day1/task2/task2_data_2.txt @@ -0,0 +1,4 @@ +f;ldasjgkjasdngjasdbjklfkaSMGG' +ASDDGN +DPAJGN +FKLADSKF'ADSNLGNADSL;JGLJ diff --git a/day1/task3/task3.py b/day1/task3/task3.py new file mode 100644 index 0000000..2dae428 --- /dev/null +++ b/day1/task3/task3.py @@ -0,0 +1,31 @@ +import os + + +file_path = input() + +if os.access(file_path, os.W_OK): + try: + open(file_path) + except IsADirectoryError: + print(f'Файл "{file_path}" является директорией. Завершаем работу...') + else: + print(f'Файл "{file_path}" существует и доступен для записи. Удаляем...') + os.remove(file_path) + +else: + try: + f = open(file_path, 'w', encoding='utf-8') + except PermissionError: + print(f'Путь "{file_path}" не доступен для записи.') + print('Завершаем работу...') + + else: + f.write('Ало здравствуйте. Alo zdravstvuite.') + + with open(file_path, encoding='cp1251') as f: + print(f.read()) + + with open(file_path, encoding='utf-8') as f: + print(f.read()) + + os.remove(file_path) diff --git a/day1/task4/task4.py b/day1/task4/task4.py new file mode 100644 index 0000000..2583cb4 --- /dev/null +++ b/day1/task4/task4.py @@ -0,0 +1,60 @@ +import string +import re +import os + + +html_path = os.path.join(os.getcwd(), 'task4_data.html') + +folder_path = '' + +# Не знаю зачем, но в задании так написано +try: + os.mkdir('../htmls') + folder_path = '../htmls' +except PermissionError: + print('Директория на уровень выше не доступна для записи.') + print('Создаем папку в текущей директории...') + try: + os.mkdir('htmls') + folder_path = 'htmls' + except PermissionError: + 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)) + ascii_file.write(cleared_data) + + ################### + + body_cleared = re.sub( + r'<BODY>(.|\n)*?</BODY>', + lambda match: match.string[match.start(): match.end()].replace('\n', ''), + data + ) + + body_file.write(body_cleared) + + html_file.close() + ascii_file.close() + body_file.close() diff --git a/day1/task4/task4_data.html b/day1/task4/task4_data.html new file mode 100644 index 0000000..4357c07 --- /dev/null +++ b/day1/task4/task4_data.html @@ -0,0 +1,13 @@ +<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> +<HTML> + <HEAD> + <TITLE> + A Small Hello. Это по идеи заголовок. + </TITLE> + </HEAD> +<BODY> + <H1>Hi я интерактивная страница</H1> + <P>I want to be inline, in my source code</P> + <P>This is very minimal "hello world" HTML document.</P> +</BODY> +</HTML> diff --git a/day1/task5/task5.py b/day1/task5/task5.py new file mode 100644 index 0000000..2869247 --- /dev/null +++ b/day1/task5/task5.py @@ -0,0 +1,20 @@ +import os + +read_path = os.path.join(os.getcwd(), 'task5_data.txt') +write_path = os.path.join(os.getcwd(), 'task5_data_new.txt') + +if not os.access(read_path, os.R_OK): + print('Файл "{}" не доступен для чтения'.format(read_path)) +elif not os.access(write_path, os.W_OK): + print('Файл "{}" не доступен для записи'.format(write_path)) + +else: + with open(read_path) as f: + print(f.read()) + + with open('task5_data.txt', 'rb') as input_byte, open(write_path, 'wb') as out: + char = input_byte.read(1) + while char: + number = int(char.hex(), 16) + out.write(bytes([number ^ 2])) + char = input_byte.read(1) diff --git a/day1/task5/task5_data.txt b/day1/task5/task5_data.txt new file mode 100644 index 0000000..2dfc0ba --- /dev/null +++ b/day1/task5/task5_data.txt @@ -0,0 +1 @@ +12йцas
\ No newline at end of file |