import platform """ Специфические команды, которые надо выполнять только на ОС семейства Linux: if OS.IS_LINUX_BOOL: Специфические команды, которые надо выполнять только на ОС семейства Windows: if OS.IS_WINDOWS_BOOL: """ IS_LINUX_BOOL = (platform.system().upper()=="LINUX" or platform.system().upper()=="LINUX2") IS_WINDOWS_BOOL = (platform.system()=="Windows") def PathStr(inPathStr:str) -> str: """Преобразование строк, который содержат путь к каталогу или файлу. В зависимости от операционной системы поддерживаются разные форматы. Для Windows ОС: path\\to\\file Для Linux ОС: path/to/file .. code-block:: python from pyOpenRPA.Tools import CrossOS lPathStr = CrossOS.PathStr(inPathStr = 'path/to\\file') # WINDOWS: lPathStr == 'path\\to\\file' # LINUX: lPathStr == 'path/to/file' :param inPathStr: Строка, которую обработать в зависимости от ОС, на которой происходит выполнение :type inPathStr: str :return: Обработанная строка с учетом используемой ОС :rtype: str """ if inPathStr is None: return None if IS_WINDOWS_BOOL: return inPathStr.replace("/","\\") if IS_LINUX_BOOL: return inPathStr.replace("\\","/") def PathSplitList(inPathStr:str) -> list: """Парсинг строки пути на элементы. Учитывает специфику формирования путей в разных ОС (Windows, Linux) Для Windows ОС: path\\to\\file Для Linux ОС: path/to/file .. code-block:: python from pyOpenRPA.Tools import CrossOS lPathList = CrossOS.PathSplitList(inPathStr = 'path/to\\file') # WINDOWS: lPathList == ['path', 'to', 'file'] # LINUX: lPathList == ['path', 'to', 'file'] :param inPathStr: Строка, которую обработать в зависимости от ОС, на которой происходит выполнение :type inPathStr: str :return: Массив элементов пути. Пример: ['path', 'to', 'file'] :rtype: list """ inPathStr = inPathStr.replace("\\","/") return inPathStr.split("/") def PathJoinList(inList: list) ->str: """Слияние элементов списка в строку. Учитывает специфику формирования путей в разных ОС (Windows, Linux) Для Windows ОС: path\\to\\file Для Linux ОС: path/to/file .. code-block:: python from pyOpenRPA.Tools import CrossOS lPathStr = CrossOS.PathJoinList(inList = ['path', 'to', 'file'] ) # WINDOWS: lPathStr == 'path\\to\\file' # LINUX: lPathStr == 'path/to/file' :param inList: Строка, которую обработать в зависимости от ОС, на которой происходит выполнение :type inList: str :return: Массив элементов пути. Пример: ['path', 'to', 'file'] :rtype: list """ if IS_LINUX_BOOL: return "/".join(inList) elif IS_WINDOWS_BOOL: return "\\".join(inList)