You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中os.listdir()能否列出远程目录?Windows下调用报错求助

解答:os.listdir()访问远程目录的问题

Q1:Python的os.listdir()能列出远程目录吗?

当然可以,但得满足一个关键前提:你的操作系统已经能识别并访问这个远程目录。os.listdir()本身只是调用系统的文件系统接口,所以如果远程目录已经被挂载成本地路径(比如Linux下的mount,Windows下的映射网络驱动器),或者通过UNC路径能直接在系统里访问,那它就能正常工作。反之,如果系统都认不出这个远程路径,Python自然会报错。

Q2:Windows下用UNC路径调用os.listdir()报FileNotFoundError怎么办?

你碰到的这个错误大概率是路径格式问题,或者权限/网络访问的问题,我们一步步来解决:

1. 先修正路径的字符串格式

Windows的UNC路径里的反斜杠\在Python字符串中是转义字符,你直接写的\\servername\d$\...会被Python解析出错。有两种简单的修正方式:

  • 使用原始字符串:在路径开头加r,这样Python就不会解析反斜杠为转义字符:
    newList = os.listdir(r'\\servername\d$\J2EE\IE\FOIS\jboss-4.2.3.GA\server\all\tmp')
    
  • 把所有反斜杠换成双反斜杠:
    newList = os.listdir('\\\\servername\\d$\\J2EE\\IE\\FOIS\\jboss-4.2.3.GA\\server\\all\\tmp')
    

2. 验证权限与网络连通性

  • 先试试在Windows资源管理器里输入这个UNC路径,看看能不能正常打开。如果资源管理器都访问不了,那Python肯定也不行——这时候要检查:
    • 你的Windows账号有没有访问\\servername\d$的权限(d$是系统管理员共享,需要管理员权限或者被明确授权的账号);
    • 目标服务器是否在线,网络连接是否正常,共享设置是否开启。

3. 备选方案:用专门的SMB库

如果上述方法还是行不通,可以考虑用专门处理Windows网络共享的Python库,比如smbprotocol或者pysmb,它们能直接通过SMB协议连接远程共享,不需要依赖系统的路径映射。不过这需要先安装对应的库,比如pip install smbprotocol。


内容的提问来源于stack exchange,提问作者Pravesh Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:04:35