如何拆分SSH地址+路径?

时间:2016-09-14 18:23:55

标签: python python-3.x parsing ssh ip-address

Python 3函数接收类似user@132.243.32.14:/random/file/path的SSH地址。我想使用paramiko lib访问此文件,该文件需要单独的用户名,IP地址和文件路径。

如果知道输入有时会省略用户名,我怎么能将这个地址拆分成这3个部分?

2 个答案:

答案 0 :(得分:2)

str.partitionrpartition会做您想做的事情:

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')

答案 1 :(得分:-3)

使用

未设置(p).isdisjoint(set(“0123456789 $,”))其中p是SSH。