Как разделить адрес SSH + путь?

Функция Python 3 получает SSH-адрес, такой как [email protected]:/random/file/path, Я хочу получить доступ к этому файлу с paramiko lib, которая требует имя пользователя, IP-адрес и путь к файлу отдельно.

Как я могу разделить этот адрес на эти 3 части, зная, что при вводе иногда пропускается имя пользователя?

2 ответа

Решение

str.partition а также rpartition буду делать что хочешь

def ssh_splitter(ssh_connect_string):
    user_host, _, path = ssh_connect_string.partition(':')
    user, _, host = user_host.rpartition('@')
    return user, host, path

print(ssh_splitter('[email protected]:/random/file/path'))
print(ssh_splitter('132.243.32.14:/random/file/path'))

дает:

('user', '132.243.32.14', '/random/file/path')
('', '132.243.32.14', '/random/file/path')

использование

не установлено (p).isdisjoint(set("0123456789$,")) где p - SSH.

Другие вопросы по тегам