gpt4 book ai didi

Python 无法打开符号链接(symbolic link)文件

转载 作者:太空狗 更新时间:2023-10-29 22:25:29 25 4
gpt4 key购买 nike

Python 无法打开我的模拟链接文件。我确定该文件存在并且我可以访问它。我的印象是符号链接(symbolic link)是在操作系统级别解析的,因此 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 显然能够解析符号链接(symbolic link)图像文件。然而 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'
>>>

知道我做错了什么吗?非常感谢您的帮助。

最佳答案

Any ideas what I am doing wrong?

符号链接(symbolic link)的目标不存在。

I don't understand why I was able to resolve it in the ls statement in my question.

你不是。

默认情况下,ls 命令对链接本身进行操作,而不是对链接的目标进行操作。如果没有 -L 选项,ls 从不尝试解析符号链接(symbolic link)。

考虑一个包含这两个文件的目录:

$ ls -l
-rw-rw-r-- 1 me me 6 May 13 11:58 a
lrwxrwxrwx 1 me me 3 May 13 12:00 b -> ./a

a 是包含六个字节 'hello\n' 的文本文件。 b 是一个包含指向其目标路径的三个字节的链接文件:'./a'ls 能够在不取消引用链接本身的情况下描述链接的属性

相反,使用-L选项:

$ ls -lL
-rw-rw-r-- 1 me me 6 May 13 11:58 a
-rw-rw-r-- 1 me me 6 May 13 11:58 b

现在 ls 已经解析了 b 中的链接,并显示有关链接到文件的信息。使用 -Lls 现在声称 b 也是一个六字节文本文件。

最后,考虑一下:

$ rm a
$ ls -l
lrwxrwxrwx 1 me me 3 May 13 12:00 b -> ./a
$ ls -lL
ls: cannot access b: No such file or directory
l????????? ? ? ? ? ? b

现在 b 是一个解析为不再存在的文件的链接。由于 ls -l 从不尝试解析链接,因此其输出与之前的测试没有变化。 (b为链接文件,3字节长,内容为'./a'。)

但是 ls -lL 尝试解析链接,失败,并显示失败信息。

关于Python 无法打开符号链接(symbolic link)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37214892/

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