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 に答える