python - 从具有最多可用空间的元组中查找路径

标签 python

我有一个文件系统路径元组,如下所示:

storage_locations = (
    '/Location/One/',
    '/Location/Two/',
    '/Location/Three/',
)

这些可能位于具有不同可用空间量的不同磁盘上。我想找到具有最多可用空间的路径,但我无法弄清楚如何以一种看起来不太复杂的方式。

到目前为止我已经做到了:

def get_free_space(path):
    return shutil.disk_usage(path).free

largest_space = max(map(get_free_space, storage_locations))

我想要的信息是具有最大可用空间的位置的路径,但是,我只有该位置的可用字节数。

我觉得必须有一种方法可以即时创建一个字典,其中每一对都包含路径和该路径上的可用空间量。然后,使用它找到可用空间最大的路径。

但是在尝试了很多事情之后,我似乎无法找到一种很好的方法来做到这一点,在几行左右的时间内仍然可读。必须有一种“Pythonic”的方法来很好地做到这一点:)

最佳答案

由于 max 依次考虑元组的每个项目,因此您可以将可用空间与路径关联起来并将它们都取回。

>>> storage_locations = [ '/' ]
>>> max((shutil.disk_usage(path).free, path) for path in storage_locations)
(570431541248, '/')
>>> 

如果你想要一个字典,你可以类似地构造它

>>> dict(((path, shutil.disk_usage(path).free) for path in storage_locations))
{'/': 570431426560}

关于python - 从具有最多可用空间的元组中查找路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35260566/

相关文章:

python - openpyxl 更改标题和 y axis.title 的字体大小

python - 根据数字对字母表进行排序

python - OpenCV Python Split -> Laplacian -> HoughCircles = 断言失败。

python - 带有方程式和 R2 文本的 Seaborn lmplot

python - sys.stdout.encoding、locale.getpreferredencoding() 和 sys.getdefaultencoding() 之间有什么区别?

python - 图像投影的更高采样率

python - 将值从元组列表映射到另一个列表

python - 使用 lxml 和 iterparse() 解析一个大的 (+- 1Gb) XML 文件

python - 使用 Python 构建动态 HTML 电子邮件内容

python - 为什么我的 RSA 代码中的加密/解密不起作用?