gpt4 book ai didi

python - 设备上没有剩余空间后无法删除文件

转载 作者:行者123 更新时间:2023-11-28 18:35:38 25 4
gpt4 key购买 nike

我正在几个硬盘上写一堆文件。我所有的文件都不能放在一个硬盘上,所以如果第一个硬盘空间不足,我会把它们写在下一个硬盘上。我捕获了 IOError 28 来解决这个问题。

我的确切问题是,当我尝试删除写入第一个磁盘的最后一个文件(不完整的文件)时,我得到一个我不完全理解的新异常。似乎 with-block 无法关闭文件,因为磁盘上没有剩余空间。

我在 Windows 上,磁盘被格式化为 NTFS。

有人可以帮帮我吗

# Here's a sample code
# I recommend first to fill a disk to almost full with a large dummy file.
# On windows you could create a dummy file with
# 'fsutil file createnew large.txt 1000067000000'

import os
import errno

fill = 'J:/fill.txt'
try:
with open(fill, 'wb') as f:
while True:
n = f.write(b"\0")
except IOError as e:
if e.errno == errno.ENOSPC:
os.remove(fill)

这是回溯:

Traceback (most recent call last):
File "nospacelef.py", line 8, in <module>
n = f.write(b"\0")
IOError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "nospacelef.py", line 8, in <module>
n = f.write(b"\0")
IOError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "nospacelef.py", line 11, in <module>
os.remove(fill)
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'J:/fill.txt'

最佳答案

回答我自己的问题。

我向 python [1][2] 提交了一个错误。它已经在 3.3+ 中修复。我使用的 3.2 没有修复程序。我升级了我的 python 版本,所以我不再遇到这个问题。

[1] http://bugs.python.org/issue25202

[2] http://bugs.python.org/issue16597

关于python - 设备上没有剩余空间后无法删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32690018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com