我正在尝试打印远程服务器中文件夹的内容。我使用的代码是:
srcserver = 'abc.com'
dyndir = '\\\\%s\\E$\\Backup\\' %(srcserver)
ls = glob.glob('%s*' %dyndir)
print ls
当我尝试这个时,它会返回一个空数组。你能帮我解决这个问题。
答案 0 :(得分:0)
访问远程服务器中的文件实际上非常复杂!在某些时候,软件必须建立网络连接,验证,将文件系统命令转换为网络数据包等等。如果你这样做,像在本地文件系统上那样使用glob.glob,你基本上依靠Windows虚拟文件系统为你完成所有这些工作。我并不感到惊讶,因为有很多可能出错的地方(例如,Windows vfs可能会拦截文件系统命令的级别高于访问文件系统的相对低级别的方式)。
如果你肯定想这样做,那么你应该在你的问题中添加以下信息:
可能还有其他相关的信息,我无法想到,因为当你研究它时,这开始更像是一个Windows问题而不是一个Python问题。如果您想要使用基于Windows vfs的解决方案,可能需要在问号标签中添加“Windows”和其他一些相关的关键字,如“SMB”或“CIFS”。
另一种方法是使用SMB / CIFS客户端,完全取消Windows文件系统。您可以使用Python来操作命令行客户端,例如smbclient。或者您可以使用Python库来处理这些位,尽管将Python用于此类事件并不常见,因此某些库可能存在错误,支持不足或过时。谷歌“Python SMB”,如果你想尝试这种方法;前几次点击都与这个问题有关。
答案 1 :(得分:0)
您应该尝试使用fabric
它提供了与服务器的直接ssh
连接,允许您在远程服务器上运行命令,使用sftp
进行文件传输,基本上可以使用{{{{{{ 1}}
安装结构后:
ssh
如果您使用的是前一张海报所示的窗口,那么我建议您查看this stackoverflow ticket