當前位置:編程學習大全網 - 源碼下載 - python怎麽用遞歸遍歷多層目錄樹

python怎麽用遞歸遍歷多層目錄樹

Python實現遞歸遍歷指定文件目錄(startdir),從而找到所有與指定的文件或目錄(target)名相同的文件或目錄的絕對路徑。

scandir.py :

#! /usr/bin/python

# filename : scandir.py

# author : Jesse

# update : 2011/08/15 10:16

import os

def scandir(startdir, target) :

os.chdir(startdir)

for obj in os.listdir(os.curdir) :

if obj == target :

print os.getcwd() + os.sep + obj

if os.path.isdir(obj) :

scandir(obj, target)

os.chdir(os.pardir) #!!!

startdir = raw_input('Please input startdir: ')

target = raw_input('Please input target: ')

scandir(startdir, target)

關於該程序的壹點說明:

1. 函數scandir的形參target可以是目錄名也可以是文件名。

2. 函數chdir的作用是切換到指定目錄,該參數必須是有效的且有訪問權限的相對路徑或絕對路徑。

3. 函數的第五行,使用getcwd函數也是為了取得當前絕對路徑。

4. 加號作為字符串的連接符。os.sep根據妳的操作系統給出目錄分隔符,在GNU/Linux和UNIX上它的返回值是'/',在windows上它的返回值是'\\',在Mac OS上是‘:’,使用os.sep而不直接使用字符,會提高程序的可移植性。

5. 遞歸調用後,壹定不能忘了os.chdir(os.pardir),返回上層目錄(即父目錄)。

重要:

1. 理解for中的兩個並列的if語句,並列是為了解決目標是文件夾時,該目標文件夾中包含符合要求的文件夾。

2. 如果指定目錄中存在訪問受限的文件或文件夾,該程序會失敗,返回無權訪問信息。

/uid-26137687-id-2183259.html

  • 上一篇:mt4最好用最精確的指標有 用什麽方法分析外匯
  • 下一篇:走班制適合中國的高中教育嗎?
  • copyright 2024編程學習大全網