当前位置:  开发笔记 > 编程语言 > 正文

为什么Python为文件名短于文件系统的限制提供"OSError:[Errno 36]文件名太长"?

如何解决《为什么Python为文件名短于文件系统的限制提供"OSError:[Errno36]文件名太长"?》经验,为你挑选了1个好方法。

以下代码产生意外的异常:

open("52bbe674cdc81d4140099b84fa69eea4249bcceee75bcbe4838d911ab076547cfdad3c1c5197752a98e5525fe76613dbe52dcdb1a9a397669babce0f101d010142cffa000000.csv", "w")
OSError: [Errno 36] File name too long: '52bbe674cdc81d4140099b84fa69eea4249bcceee75bcbe4838d911ab076547cfdad3c1c5197752a98e5525fe76613dbe52dcdb1a9a397669babce0f101d010142cffa000000.csv'

这是意料之外的,因为我的文件系统是ext4(根据维基百科)具有255字节的文件名长度限制.上述文件名的长度为144.

那么,为什么Python在实际上没有超过文件名长度限制时会引发此异常呢?



1> Josh Hansen..:

我找到了解决方案.事实证明,我并没有处理纯粹的ext4 ---它实际上是在ext4上分层的ecryptfs,从以前的Ubuntu安装继续进行.正如在这个相关问题的一个未被接受的答案中所建议的那样,ecryptfs层对文件名长度施加了143个字符的限制.可以在此处找到ecryptfs下文件名长度限制的明确答案.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有