gpt4 book ai didi

python - 在 Python 中访问远程服务器上的 Windows 共享驱动器

转载 作者:可可西里 更新时间:2023-11-01 10:27:07 27 4
gpt4 key购买 nike

这似乎是一个简单的问题,但我很难弄明白。

我在远程服务器上设置了一个共享文件夹,以便该文件夹在 Windows 资源管理器中显示如下:\\server-name\shared-directory。我可以通过 Windows 资源管理器远程读取该文件夹并远程写入该文件夹。然而,当我尝试通过 python 脚本访问该文件时,它说该目录不存在。

我拥有服务器的管理权限并授予我自己访问共享驱动器的权限(我通过 Windows 资源管理器复制文件验证了这一点)。

在 python 中,我按如下方式访问驱动器(虽然我尝试了几种不同的方法但没有成功):

os.access('\\\\server-name\\path-to-shared-directory', os.W_OK)

对我可能做错了什么有什么建议吗?

编辑:

针对问题,我实际上是在尝试使用脚本复制文件,os.access 只是用来查看目录是否具有写权限。我使用的复制代码如下:

def copy_folder(src, dest):
if not os.access(dest, os.W_OK):
return(False)
cmd = ['xcopy', '/E', '/J', '/Y', '/I', src, dest]

p = subprocess.Popen(args=cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

out, err = p.communicate()

print 'out: %s' % out
print 'err: %s' % err

return(True)

copy_folder(my_source_directory, '\\\\server-name\\path-to-shared-directory')

这将返回“无效的驱动器规范”作为错误。

最佳答案

通过您已经尝试使用的 UNC 路径访问文件应该没有问题,但我建议将其格式化为稍微不同的格式以帮助转义:

src  = r'C:\path\to\source'
dest = r'\\server-name\path-to-shared-directory'

而且你不需要stdin:

p = subprocess.Popen(cmd, 
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)

通常您可以在 python 中对路径使用正斜杠,但由于您调用的是 shell 命令,因此仍然需要反斜杠。

关于python - 在 Python 中访问远程服务器上的 Windows 共享驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12734961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com