首页 > 解决方案 > 如何检测闪存驱动器上是否有足够的存储空间来写入文件?

问题描述

我正在开发一个 Python 程序,它将在闪存驱动器上生成无限的文本文件。该程序将是唯一在该闪存驱动器上运行的程序,我想在每次写入时检查是否有足够的存储空间。

如果有,我想将文件写入驱动器。如果没有足够的空间,我想对内容做点别的。例如:

def write_file(contents):
    if "Check if there is sufficient storage space on E:\ drive.":
        with open("filename", "w") as file:
            file.write(contents)
    else:
        # Alternative method for dealing with content.

我需要有一个很好的方法来找出操作将占用多少空间file.write()并将其与驱动器上的可用空间进行比较。

谢谢!

标签: pythondiskspace

解决方案


您可以按照此处的说明获取磁盘的信息:

import subprocess
df = subprocess.Popen(["df", "path/to/root/of/disk"], stdout=subprocess.PIPE)
output = df.communicate()[0]
device, size, used, available, percent, mountpoint = \
    output.split("\n")[1].split()

现在,使用usedavailable来决定磁盘是否有足够的空间。


推荐阅读