如何拆分SSH地址+路径?
How to split an SSH address + path?
A Python 3 函数接收 SSH 地址,如 user@132.243.32.14:/random/file/path
。我想用 paramiko
库访问这个文件,它需要用户名、IP 地址和文件路径。
知道输入有时会省略用户名,如何将此地址拆分为这 3 个部分?
使用
not set(p).isdisjoint(set("0123456789$,")) 其中 p 是 SSH。
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('user@132.243.32.14:/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')
A Python 3 函数接收 SSH 地址,如 user@132.243.32.14:/random/file/path
。我想用 paramiko
库访问这个文件,它需要用户名、IP 地址和文件路径。
知道输入有时会省略用户名,如何将此地址拆分为这 3 个部分?
使用
not set(p).isdisjoint(set("0123456789$,")) 其中 p 是 SSH。
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('user@132.243.32.14:/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')