除了使用外,如何列出网络上的目录 os.listdir()
这提示我错误
import os
path = r"\\123.12.12.123"
print(os.listdir(path))
FileNotFoundError: [WinError 67] The network name cannot be found: '\\\\123.12.12.123'
很好,但不是我想要的
import os
path = r"\\123.12.12.123\abc"
print(os.listdir(path))
尝试了所有这些,并获得了相同的错误代码。
path = "\\\\123.12.12.123"
path = "\\\\123.12.12.123\\"
path = "//123.12.12.123"
更新:
它是服务器地址,但不是有效的UNC路径。\ 123.12.12.123 \ abc是共享驱动器的实际根目录。
os.listdir()
将无法完成这项工作,我们将需要使用其他一些方法来列出答案部分中提到的共享驱动器。
在Windows上,您可以使用Win32 API函数NetShareEnum。
Python模块pywin32提供了对许多Win32 API的访问,其中包括NetShareEnum函数,该函数可以从中获得win32net.NetShareEnum
。查找股票的最简单方法是使用Python命令[x[0] for x in win32net.NetShareEnum('123.12.12.123')]
。
为了演示如何使用它,以下示例为在本地主机上找到的所有共享打印所有目录:
import os
import win32net
def get_shares(server):
return [x[0] for x in win32net.NetShareEnum(server)]
def print_shares_and_directories(server):
shares = get_shares(server)
for share in shares:
print('SHARE: %s' % share)
path = '\\\\%s\\%s' % (server, share)
try:
files = os.listdir(path)
except OSError:
print(' (Directory listing failed)')
else:
for file in files:
if os.path.isdir(os.path.join(path, file)):
print(' %s' % file)
print_shares_and_directories('localhost')
感谢Masklinn,后者在评论中提供了相关信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句