我有一个文件系统路径元组,如下所示:
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/