python - 在桌面上安装 SMB 网络共享

标签 python macos share mount smb

我正在尝试通过 python 将 smb 网络共享挂载到桌面上,我不希望将共享挂载到文件夹中,但是所有其他挂载的共享是否都是(如果我在中使用“连接到服务器” OSX 我希望我的 python 挂载安装在同一位置)。 这是当前的 python 代码:

directory = os.path.expanduser('~/Desktop')
directory = os.path.normpath(directory)
os.system("mount_smbfs //server/servershare " + directory)

当我运行上面的代码时,会发生一些奇怪的事情。在 finder 中,我的家有一个房子的图标,我的用户名更改为坐骑名称,它有点搞砸了。

最佳答案

如果您想以类似 Finder 的方式执行此操作,请通过 Python 通过 shell 在 AppleScript 中执行此操作:

os.system("osascript -e 'mount volume \"smb://server/servershare\"'")

您不需要任何其他东西——没有挂载点。这与选择“连接到服务器”相同,生成的卷将按预期显示在/Volumes 中。

如果您需要指定用户名和/或密码,您可以这样做:

os.system("osascript -e 'mount volume \"smb://server/servershare\" \
as user name \"myUserName\" with password \"myPassword\"'")

如果您想使用 mount_smbfs 以您原来的方式进行操作,我认为您希望 directory 成为您在 /Volumes 中创建的文件夹,例如/Volumes/mySmbVolume,虽然我从来没有尝试过这样做。正如您所写的那样,您正在用您正在安装的卷替换您的实际桌面文件夹。但是,您可以在 Desktop 中为 directory 创建一个文件夹并将其用于 directory,它可能会起作用。但是,我会像我写的那样按照通常的 Mac 做事方式最标准地去做。

关于python - 在桌面上安装 SMB 网络共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27598313/

相关文章:

python - 如何查找和替换文本文件中的多行?

python - 快速搜索列表中的字典

macos - 如何在 OS X 中接收文件系统更改的通知?

facebook - 是否可以通过图形 API 或任何其他资源获取所有共享特定帖子的用户 ID?

ios - 在模拟器中使用 UIDocumentInteractionController

android - 使用 Intent 与 Glide 库共享图像 - 图像始终为空

python - 具有一个键和两个值的字典 转为 CSV

python - 在 django 或 python 应用程序中用 % 替换空格

ios - <<和>>在swift中是什么意思

macos - 如何在 OSX 上设置 Qt 标签栏背景的样式