使用映射驱动器的SMB与Python

3 投票
1 回答
7270 浏览
提问于 2025-04-17 13:02

我正在构建一个应用程序系统,这些应用会监听一个共享文件夹,文件会被放到一个smb共享驱动器里。我已经把smb驱动器挂载到我的电脑上,难道我不应该可以直接用file.open()来打开文件吗?

  file = open("//drive/location/of/file/file.txt")
  lines = file.readlines()
  for line in lines:
       print line
  file.close()

我在使用的是Mac电脑,系统是Snow Leopard。我得承认我更习惯于Windows开发,所以可能对某些事情理解得不太对。任何帮助都会非常感激。

我看到过几个类似的Stack Overflow问题,比如这个 使用pysmbc通过samba读取文件

但这些问题是关于如何编程连接的,而我已经把驱动器映射到我的电脑上了。

1 个回答

6

如果远程的SMB驱动器已经挂载,那么它就基本上成了你主文件系统的一部分,这样你就可以像访问本地文件一样访问它。

/path/to/mount_point/path/on/remote/server/file.txt
^^^^^^^^^^^^^^^^^^^^- local on mac
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- remote on other machine

在你访问file.txt之前,这些文件都被认为是“本地”的,直到你打开file.txt,这时SMB的系统就会接管,把文件操作转到远程机器上。

使用//这种格式表示你是想直接通过网络访问文件,格式应该是

//name_of_remote_machine/name_of_share/path/to/file.txt

这样一来,本地文件系统就不参与了,所有操作都会直接由SMB系统处理。

撰写回答