os模塊提供的walk方法很強大,能夠把給定的目錄下的所有目錄和文件遍歷出來。

方法:os.walk(path),遍歷path,返回一個對象,他的每個部分都是一個三元組,('目錄x',[目錄x下的目錄list],目錄x下面的文件) 具體代碼如下:


import os
import sys
def walk_dir(dir,fileinfo,topdown=True):
    for root, dirs, files in os.walk(dir, topdown):
        for name in files:
            print(os.path.join(name))
            fileinfo.write(os.path.join(root,name) + '\n')
            file = open(os.path.join(root,name),"r") #讀出第一行
            print file.readline();
        for name in dirs:
            print(os.path.join(name))
            fileinfo.write(' ' + os.path.join(root,name) + '\n')

topdown決定遍歷的順序,如果topdown為True,則先列舉top下的目錄,然后是目錄的目錄,依次類推,反之,則先遞歸列舉出最深層的子目錄,然后是其兄弟目錄,然后子目錄。

dir = raw_input('please input the path:')
fileinfo = open('list.txt','w')
walk_dir(dir,fileinfo)