我有一个目录,其中包含一些文件、一些目录、一些指向文件的符号链接和一些指向目录的符号链接。
当我在该目录中使用followlinks=false参数执行os.walk()函数时,文件和符号链接显示在filenames列表中,而目录显示在dirnames列表中。但是,指向目录的符号链接没有出现在任何地方。这是Python中的一个bug还是特性,还是我做错了什么?
我期望指向目录的符号链接出现在filenames列表中,因为它们不是目录,而是符号链接,而其他符号链接(指向其他文件)出现在filenames列表中。
例如: 目录foo包含以下内容:
或者至少
所以文件夹的符号链接显示在目录名称列表中。
一开始,我预期文件夹的符号链接会出现在文件名列表中,没有查看目录名称列表。当我试着通过代码和文件系统找到链接的位置或者为什么链接“丢失”时,我不小心混淆了结果。
非常抱歉我的提问。
当我在该目录中使用followlinks=false参数执行os.walk()函数时,文件和符号链接显示在filenames列表中,而目录显示在dirnames列表中。但是,指向目录的符号链接没有出现在任何地方。这是Python中的一个bug还是特性,还是我做错了什么?
我期望指向目录的符号链接出现在filenames列表中,因为它们不是目录,而是符号链接,而其他符号链接(指向其他文件)出现在filenames列表中。
例如: 目录foo包含以下内容:
-rw-rw-r-- 4 rikno staff 136 Jan 14 11:10 firefox
lrwxr-xr-x 1 rikno staff 5 Jan 23 13:29 latex -> tetex
lrwxr-xr-x 2 rikno staff 68 Jan 14 11:10 mozilla -> firefox
drwxrwxr-x 3 rikno staff 102 Jan 23 13:29 tetex
我期望在第一次迭代中,os.walk('foo')返回:
('foo', ['tetex'], ['firefox', 'latex', 'mozilla'])
或者至少
('foo', ['latex', 'tetex'], ['firefox', 'mozilla'])
但是我得到的仅仅是
('foo', ['tetex'], ['firefox', 'mozilla'])
我从未收到关于符号链接latex(指向目录tetex)的任何信息。
已解决:
好的,结果是
('foo', ['latex', 'tetex'], ['firefox', 'mozilla'])
所以文件夹的符号链接显示在目录名称列表中。
一开始,我预期文件夹的符号链接会出现在文件名列表中,没有查看目录名称列表。当我试着通过代码和文件系统找到链接的位置或者为什么链接“丢失”时,我不小心混淆了结果。
非常抱歉我的提问。
os.walk(“foo”).next()
会给我('foo',['tetex','latex'],['mozilla','firefox'])
。 添加followlinks=False
也会报告相同的结果。(我正在使用Python 2.7.3) - Shawn Chin