使用 Python,如何访问 Windows 网络上的共享文件夹?

Posted

技术标签:

【中文标题】使用 Python,如何访问 Windows 网络上的共享文件夹?【英文标题】:Using Python, how can I access a shared folder on windows network? 【发布时间】:2011-11-02 10:43:37 【问题描述】:

我想从共享文件夹中复制一个文件,该文件位于不同系统的共享文件夹中,但位于同一网络上。如何访问文件夹/文件?常用的 open() 方法好像不起作用?

【问题讨论】:

如果您有正确的访问权限,那么我认为常规打开应该可以工作...... 我该怎么办?我有共享文件夹的用户名和密码。代码是什么? 【参考方案1】:

使用正斜杠指定UNC 路径:

open('//HOST/share/path/to/file')

(如果您的 Python 客户端代码也在 Windows 下运行)

【讨论】:

这刚刚解决了一个让我烦恼的问题,谢谢! 这仅适用于 Windows(是的,问题被标记为 Windows,但从非 Windows 操作系统访问 Windows 服务器也可能被标记为此类)。是否有人愿意为其他平台(例如 Linux)添加解决方案——如果可能的话,不用 Samba 之类的东西? @DavidJ 如果你在 Linux 上使用 SMB,我希望 //HOST/share/ 被挂载(在某处像 /mnt/share)并且文件像普通文件一样打开(open('/mnt/share/path/to/file') )。 DavidJ 您尝试过@Johnsyweb 解决方案吗?成功了吗? @Johnsyweb 您在某个地方有其他解决方案吗?可能是github,所以我可以查看和重用?我在试图访问共享网络地址的 MAC 上。它已安装 - 我已经关注了这个地方的所有解决方案,所有解决方案都给出 FileNotFoundError: [Errno 2] No such file or directory:【参考方案2】:

你是怎么尝试的?也许您正在使用 \ 并省略正确的转义。

而不是

open('\\HOST\share\path\to\file')

将 Johnsyweb 的解决方案与 /s 结合使用,或尝试其中一种

open(r'\\HOST\share\path\to\file')

open('\\\\HOST\\share\\path\\to\\file')

.

【讨论】:

【参考方案3】:

我遇到了与 OP 相同的问题,但当前的答案都没有解决我的问题,所以添加一个对我有用的稍微不同的答案:

在 Windows 机器上运行 Python 3.6.5,我使用的格式

r"\DriveName\then\file\path\txt.md"

因此,阅读@Johnsyweb UNC 链接并按照建议在前面添加 r 的双反斜杠组合解决了我与 OP 的问题类似的问题。

【讨论】:

以上是关于使用 Python,如何访问 Windows 网络上的共享文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置Mac OS X 与 Windows之间共享网络

linux访问windows的samba配置,如何配置?详细教程

通过 python 程序访问网络文件夹

使用Python boto3上传Windows EC2实例中的文件至S3存储桶中

如何在 Windows 中强制“无法访问目标网络”ping 结果

如何在 Windows 7 上使用命令 CMD 从 python django 访问和配置 postgresql 数据库