Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Linux通过SMB共享Windows上的磁盘空间_Python_Linux_Networking_Smb_Diskspace - Fatal编程技术网

Python 从Linux通过SMB共享Windows上的磁盘空间

Python 从Linux通过SMB共享Windows上的磁盘空间,python,linux,networking,smb,diskspace,Python,Linux,Networking,Smb,Diskspace,我正在开发一个插件,用于根据磁盘空间可用性检查要删除的文件。我无法从基于Linux的操作系统(包括Raspberry Pi、Ubuntu等)上检查Windows 7共享上的磁盘空间。顺便说一下,XBMC使用python 2.6 我目前的代码如下: import os loc1 = "smb://geert/e/Downloads/" loc2 = "/home/" stats = os.statvfs(loc) print stats 在上面的代码中,loc1是导致故障的路径。似乎stat

我正在开发一个插件,用于根据磁盘空间可用性检查要删除的文件。我无法从基于Linux的操作系统(包括Raspberry Pi、Ubuntu等)上检查Windows 7共享上的磁盘空间。顺便说一下,XBMC使用python 2.6

我目前的代码如下:

import os

loc1 = "smb://geert/e/Downloads/"
loc2 = "/home/"

stats = os.statvfs(loc)
print stats
在上面的代码中,loc1是导致故障的路径。似乎statvfs模块无法处理smb://路径,因为我一直收到下面的错误。当我尝试loc2时,一切都很好。我到处寻找这个问题的确切答案,但没有找到

/usr/bin/python2.7 statvfstest.py
Traceback (most recent call last):
  File "statvfstest.py", line 8, in <module>
    print os.statvfs(loc)
OSError: [Errno 2] No such file or directory: 'smb://geert/e/Downloads/'
我尝试过的步骤:

我已经尝试过psutil模块,正如我在本网站的其他问题中经常看到的那样,但它似乎只是statvfs方法的包装器,因此会产生相同的错误消息,只是堆栈跟踪更长

已安装e共享并使用了正确的凭据。共享在文件管理器中可见,并显示正确的内容

我已将凭据添加到表单中的loc1smb://user:pass@geert/e/Downloads/

以上三种方法的任何组合,都无济于事

您能否帮助我使用smb网络路径从Linux PC可靠地测试Windows共享上的可用空间量?如果可能的话,我想避免仅仅为了这个特性而向我的插件添加额外的模块,以确保它保持轻量级

提前感谢,


Geert

当您安装共享时,您仍然使用吗smb://share/ 至于位置,例如/mnt/share/?是的,我想我确实知道,我在linux方面的经验是有限的。将显示文件管理器中的位置栏smb://geert/e/Downloads 侧边栏显示geert.Ok上的e。我也不是专家,但我会尽力解释。当您在linux中装载磁盘/分区/共享时,它会在某个位置成为文件系统的一部分:装载点。例如,可以在文件夹中使用USB驱动器,例如/media/drive/。在某种程度上,挂载点相当于Windows中的驱动器号。因为共享成为文件系统的一部分,所以您不必将其作为网络位置进行寻址,statvfs也可以使用它。因此,当您使用挂载点作为位置时,也许可以检查代码是否工作。挂载点可以是任何文件夹AFAIK,但对于Ubuntu for smb,它应该是不知道这在XBMC上是否不同…好吧,听起来很合理。XMBC使用对用户不透明的内部装载过程。我会在XBMC论坛上四处询问,并报告我的发现。