首页 文章

检查共享网络驱动器中是否存在文件

提问于
浏览
0

我正在尝试确定共享网络驱动器上是否存在目录 .

import os

if(os.path.exists('/Volumes')):
 print 'path exists'
else:
 print 'path does not exist'

这工作正常,但在传递此参数时失败:'/ Volumes / A21 's \ Public \ Folder'

这对我来说很有意义,因为在我在Finder上打开共享驱动器之前,这不存在 . 所以我想我需要先挂载,我先从命令行尝试 -

mount_smbfs smb://guest@server/A21's Public Folder

这失败了,所以我不确定为os.path.exists参数传递什么 . 理想情况下,我希望能够先装入/ Volumes / A21的公用文件夹,然后再检查该文件夹是否存在?

2 回答

  • 0

    问题可能是您复制并粘贴字符串 . 我之前遇到过这个问题 . 处理文件路径时,最好使用os join,遇到的问题较少

    尝试使用:

    os.path.join
    

    例如:

    import os
    
    pathtodrive = os.path.join("Volumes", "A21's Public Folder")
    
    if (os.path.exists(pathtodrive)):
        print 'path exists'
    else:
        print 'path does not exist'
    
  • 0

    Python 中,您将基本上执行与 Bash 装载共享中相同的例程:

    #!/usr/bin/python
    
    import os
    
    home = os.path.expanduser("~")
    mnt = home + "/mnt"
    
    if not os.path.exists(mnt): os.makedirs(mnt)
    os.chdir(mnt)
    
    os.system("mount_smbfs //username@server._smb._tcp.local/share " + mnt)
    

    这样做是在用户主目录中将挂载点设置为 mnt ;如果文件夹不存在则会创建它 . 然后该命令将更改到该目录并安装 smb . 您需要输入密码,或者如果您想要一种非常安全的方式,那么您始终可以在命令中包含密码(例如 username:password ) .

    挂载共享后,您可以检查文件是否存在:

    os.path.exists(mnt + "/path/to/file")
    

相关问题