gpt4 book ai didi

python: IOError: [Errno 36] 文件名太长:

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:55 25 4
gpt4 key购买 nike

我想在 tmpfs 中创建一个文件(在 CentOS 6.5 下),如下所示:

fpath = '/tmpfs_mounted/with/long/file/name'
with open(fpath, 'w') as fd:
write(somedata)
...

但是我收到了 IOError: [Errno 36] File name too long: ... 错误,如何修复它?

最佳答案

好的,我明白了。 Linux 实际上有 256 个字节的基本名称限制,请参阅 here了解所有限制的完整列表。一个简单的代码可以验证:

# -*- encoding:utf8 -*-
import os

if __name__ == '__main__':
base = 'x'
basename = ''
while 1:
basename += base
try:
with open(basename, 'w') as fd:
os.remove(basename)
except Exception as ex:
print('length %d failed' % len(basename))
break

我在将GBK编码的文件名复制到Tmpfs中时遇到问题,然后将GBK文件名转为UTF8,然后长度发生了变化:

>>> s = u'中'
>>> len(s.encode('gbk'))
>>> 2
>>> len(s.encode('utf8'))
>>> 3

因此,utf8 文件名可能超过 255 字节。

关于python: IOError: [Errno 36] 文件名太长:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37981892/

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