【发布时间】:2016-05-13 16:20:37
【问题描述】:
Python 无法打开我的 simlinked 文件。我确保该文件存在并且我可以访问它。我的印象是符号链接是在操作系统级别解析的,所以 Python 永远不会知道它。
therold@therold:~/Programming/ML/deeptank/dataset/inc (master)$ ls -lisa /Users/therold/Programming/ML/deeptank/dataset/inc/training/tanks/matilda-iv_689.png
7870541 8 lrwxr-xr-x 1 therold staff 46 13 Mai 16:44 /Users/therold/Programming/ML/deeptank/dataset/inc/training/tanks/matilda-iv_689.png -> ../training_data/matilda-iv/matilda-iv_689.png
OSX 显然能够解析符号链接的图像文件。但是 Python open() 方法让我失望了:
therold@therold:~/Programming/ML/deeptank/dataset/inc (master)$ python
Python 2.7.10 (default, Sep 23 2015, 04:34:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin
>>> open("/Users/therold/Programming/ML/deeptank/dataset/inc/training/tanks/matilda-iv_689.png")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: '/Users/therold/Programming/ML/deeptank/dataset/inc/training/tanks/matilda-iv_689.png'
>>>
任何想法我做错了什么?非常感谢您的帮助。
【问题讨论】:
-
符号链接可能已损坏。即使操作系统可以读取链接指向的目标,也不意味着目标确实存在。你能验证一下吗?
-
似乎符号链接是作为相对链接创建的。因此,全局 Python 安装在解析相对引用后无法打开文件。
-
尝试
ls -lL /Users/therold/Programming/ML/deeptank/dataset/inc/training/tanks/matilda-iv_689.png确认文件存在。 -
有没有办法相对于绝对符号链接进行转换?
-
可能有,但你的逻辑有缺陷。 Python 和其他所有程序一样,完全能够打开相对符号链接。相对符号链接总是相对于包含链接的目录进行解析。