Advertisement
Leva7

Конвертер ссылок

Mar 4th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  1. import os
  2.  
  3. class Link():
  4.     def __init__(self, link):                         # Создание объекта Link
  5.         if isinstance(link, str):                     # из строки
  6.             self.__url = link
  7.         elif isinstance(link, Link):                  # из другого объекта класса Link
  8.             self.__url = link.__url
  9.         else:
  10.             raise TypeError("Argument is not a link") # Иначе кинуть исключение
  11.        
  12.         @property
  13.         def url(self):                                # Описание метода как свойство класса
  14.             return self.__url                         # Возвращается адрес ссылки
  15.        
  16. class Saver():
  17.     def __init__(self, parent_path):
  18.         self.__parent_path = parent_path              # Описание директории, куда будет сохраняться файл
  19.        
  20.     def save(self, data, name):
  21.         self.__result = True                          # Переменная, показывающая результат сохранения файла
  22.         self.__mkdir(name)                            # Создание папки parent_path, если она не существует
  23.         self.__save(data)                             # Сохранение файла в parent_path
  24.         return self.__result
  25.    
  26.     def __mkdir(self, name):
  27.         try:
  28.             if not os.path.exists(self.__parent_path): # Если parent_path не существует, создать
  29.                 os.makedirs(self.__parent_path)
  30.             self.__path = os.path.join(self.__parent_path, name) # Прописать полное имя файла в свойство __path
  31.         except (IOError, TypeError):                  # Если нет доступа к папке
  32.             self.__result = False                     # Вернуть отрицательный результат
  33.        
  34.     def __save(self, data):
  35.         if self.__result:                             # Если ошибок при создании папки не возникло
  36.             try:
  37.                 with open(self.__path, mode="wb") as f1:
  38.                     f1.write(data)                    # сохранить файл в parent_path
  39.             except IOError:                           # При ошибке сохранения
  40.                 self.__result = False                 # Вернуть отрицательный результат
  41.                
  42. if __name__ == "__main__":
  43.     svr = Saver("Y:\\")                               # Создание объекта Saver в корне диска Y
  44.     write_data = b"Test string"
  45.     svr.save(write_data, "kek.txt")                   # Попробовать сохранить бинарные данные в файл
  46.     with open("Y:\\kek.txt", "rb") as check:
  47.         check_data = check.read()
  48.         assert write_data == check_data               # Проверить, что содержимое сохраненного файла совпадает с исходным
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement