【发布时间】:2021-12-13 09:04:57
【问题描述】:
我有一个python代码会在一个目录下生成大约2800万个文件,但是在生成了大约600万个文件之后,python要打开一个新的txt文件时会抛出一个OSError: [Errno 28] No space left on device。
我的磁盘空间还有足够的空间来保存文件,文件系统是 ext4。我还检查了 inode,它仍然有 112M 可用于每个文件。
这是我的磁盘信息。
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1999GB 1999GB primary ext4 boot
2 1999GB 2000GB 1023MB extended
5 1999GB 2000GB 1023MB logical linux-swap(v1)
还有剩余空间
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 1.8T 150G 1.6T 9% /
和索引节点
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 117M 4.5M 112M 4% /
有没有在linux上存储大量文件的好方法?
【问题讨论】:
-
见:stackoverflow.com/questions/6998083/…。它基本上说这个错误并不一定意味着你缺乏可用空间。检查文件名不超过 255 个字符。
-
@MSH 谢谢,我已经阅读了这个主题,每个文件的最大文件名约为 40 个字符。
-
你能不能做一个测试:生成文件而不写任何东西。写入空文件。或者更好的是您可以分享您的代码以便我们进行测试?
标签: python linux file filesystems