相关疑难解决方法(0)

创建长文件时出现Python IOError异常

当尝试使用"open(fname,'w +')"打开新文件时,我得到如下所示的IOError.完整的错误消息如下.

该文件不存在,但我使用"os.access(dir_name,os.W_OK)"和"os.path.exists(dir_name)"验证了该文件的父目录是否存在.

我想知道Windows的文件名是否太长,或者我做错了什么.任何提示将不胜感激.非常感谢你.

错误信息:

IOError:[Errno 2]没有这样的文件或目录:'C:\ Documents and Settings\Administrator\op_models\Corp_Network_Nov12\abcde_corporate_nov_12.project\abcde_corporate_nov_12-ctr.rptd.dir\ctr\Weeknights的非营业时间\ hourly_data_for_2_weeks\1294897740\json.data\Link\0\Link Utilization\analyzer393146160-data0.js'

python filenames ioerror

8
推荐指数
2
解决办法
8815
查看次数

如何在 python 中获得 unix 中的最大文件系统路径长度?

在我维护的代码中,我遇到了:

from ctypes.wintypes import MAX_PATH
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

try:
    from ctypes.wintypes import MAX_PATH
except ValueError: # raises on linux
    MAX_PATH = 4096 # see comments
Run Code Online (Sandbox Code Playgroud)

但我找不到任何方法从 python ( os, os.path, sys...)获取最大文件系统路径的值- 有标准方法还是我需要外部库?

或者在 linux 中没有类似于 MAX_PATH 的东西,至少不是发行版中的标准?


回答

try:
    MAX_PATH = int(subprocess.check_output(['getconf', 'PATH_MAX', '/']))
except (ValueError, subprocess.CalledProcessError, OSError):
    deprint('calling getconf failed - error:', traceback=True)
    MAX_PATH = 4096
Run Code Online (Sandbox Code Playgroud)

linux filesystems path max-path python-2.7

4
推荐指数
2
解决办法
3543
查看次数

标签 统计

filenames ×1

filesystems ×1

ioerror ×1

linux ×1

max-path ×1

path ×1

python ×1

python-2.7 ×1