使用映射驱动器的SMB与Python
我正在构建一个应用程序系统,这些应用会监听一个共享文件夹,文件会被放到一个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系统处理。