检查python3中是否存在samba目录

我有一个 samba 目录 smb://172.16.0.10/public_pictures/,我想知道它是否可以访问。


尝试类似以下内容:


import urllib


if open("smb://172.16.0.10/public_pictures/"):

    print("accessible")

else:

    print("no accessible")

但显然它对我不起作用


芜湖不芜
浏览 291回答 2
2回答

一只斗牛犬

使用 pysmb (文档):from smb.SMBConnection import SMBConnectionremote_address = "172.16.0.10"share_name = "public_pictures"conn = SMBConnection(username, password, name, remote_name)conn.connect(remote_address)accessible = share_name in conn.listShares()

吃鸡游戏

处理 samba 的一种方法是使用pysmb. 如果是这样,那么它会类似于以下内容:# we need to provide localhost name to sambahostname = socket.gethostname()local_host = (hostname.split('.')[0] if hostname&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else "SMB{:d}".format(os.getpid()))# make a connectioncn = SMBConnection(&nbsp; &nbsp; <username>, <password>, local_host, <netbios_server_name>,&nbsp; &nbsp; domain=<domain>, use_ntlm_v2=<use_ntlm_v2>,&nbsp;&nbsp; &nbsp; is_direct_tcp=<self.is_direct_tcp>)# connectif not cn.connect(<remote_host>, <remote_port>):&nbsp; &nbsp; raise IOError# working connection ... to check if a directory exists, ask for its attrsattrs = cn.getAttributes(<shared_folder_name>, <path>, timeout=30)一些注意事项:在你上面的例子中,public_pictures是shared folder, whilepath只是/您需要知道您是否在端口139或445(或自定义端口)上使用 SMB&nbsp;。如果是后者,您通常希望通过is_direct_tcp=True(尽管某些服务器仍会在 上提供 NetBIOS samba&nbsp;445)如果您希望不需要用户名或密码,那么您可能希望username="guest"使用空密码进行连接。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python