1

我在 python 中有一个小片段,它打算遍历所有目录、子目录并维护所有文件的绝对路径列表。

代码:

import os , pickle
root="/home/me/programs/"
l = [] #Will have list of all the files parsed through
for dname,subdirlist,flist in os.walk(root):
 for fname in flist:
  l.append(os.path.abspath(fname))

即使我正在解析所有文件,但/home/me/programs/无论实际绝对路径如何,我的输出都是前缀。

例如,
'/home/me/programs/cpp/sample/test.c'
我将拥有而不是拥有'/home/me/programs/test.c'

我该如何解决这个问题?

4

1 回答 1

1

os.walk文档中所述,您必须将根路径加入您的 fname 以获得绝对路径:

import os , pickle
root="/home/me/programs/"
l = [] #Will have list of all the files parsed through
for dname,subdirlist,flist in os.walk(root):
    for fname in flist:
        l.append(os.path.join(dname, fname))
于 2012-10-04T11:56:27.440 回答