python - 如何检测闪存驱动器上是否有足够的存储空间来写入文件?
问题描述
我正在开发一个 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()
并将其与驱动器上的可用空间进行比较。
谢谢!
解决方案
您可以按照此处的说明获取磁盘的信息:
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()
现在,使用used
和available
来决定磁盘是否有足够的空间。
推荐阅读
- sql - 仅当更新的列具有不同的值时触发
- javascript - 使用 Javascript/JQuery 动态更新 Selectize 字段
- c# - 如何在 Ms 单元测试中使用 Moq 覆盖异常块
- java - 我的 index.html 中有一个按钮,打开该 html 并希望使用该按钮执行点击操作并将其重定向到不同的页面
- ruby-on-rails - ruby 会从响应中剥离标题吗?
- javascript - 在网页上插入 powerpoint
- apache-kafka - 在 kafka 中手动将消息刷新到磁盘
- git - 在 OpenShift 的 Jenkins 管道中使用密钥从本地 Bitbucket 签出 scm
- arrays - 功能不返回单选按钮列表Reactjs-ReactBootstrap
- azure-devops - 如何使用 VSTS 自动化长时间运行的测试用例?