Python:文件检索,输出绝对路径

    最近刚开始学习Python,在学习过程中有一个小作业,让我们写一个检索并输出目录下文件的绝对路径的小脚本。来这里记录一下这个过程。

    在系统的“OS”模块中,是有遍历目录这个函数的(后来才知道),先上一个我自己写的——利用函数的递归实现检索并输出文件及文件夹的绝对路径。

#!/usr/bin/python

#coding:utf-8

import os

def panduan():

    pathlist = os.listdir(os.getcwd())

    for file in pathlist:

        if os.path.isdir(os.getcwd()+'/%s' % file):

            result.write('%s:'%file+os.getcwd()+'/%s\n'%file) #将文件夹路径写入result.txt文件

            os.chdir(os.getcwd()+"/%s"%file)

            panduan()

            os.chdir('..')

        else :

            result.write("%s:" % file+os.getcwd()+"/%s\n"%file)

def again():

    try:

        os.chdir(raw_input('请输入检索的文件目录:'))

    except OSError,e:

        try :

            os.chdir(raw_input('该目录不存在,请再次输入检索的文件目录:'))

        except OSError,e:

            print "目录不存在,请确认文件目录,并重新运行脚本!"

again()

result = open('result.txt','w+')

panduan()

result.close()

    值得注意的是,如果先行调用“again”函数,result.txt文件就会在所输入的目录生成。例如,要检索root目录下,result.txt文件就会生成在root目录下;后调用“again”函数,result.txt文件就会生成在你当前所在的目录。

    接下来展示一下通过“OS”模块中的”os.walk()”进行文件目录检索的程序代码:

#!/usr/bin/python

#coding=utf8

import os

path = raw_input("请输入检索文件目录:")

if not os.path.isdir(path):

    path = raw_input("该目录不存在,请再次输入检索文件目录:")

    if not os.path.isdir(path):

        print '目录不存在,请确认文件目录,并重新运行脚本'

        exit()

result = open('result.txt','w+')

g = os.walk(path)

for path,d,filelist in g:

    for filename in filelist :

        result.write('%s:'%filename+os.path.join(path,filename))

result.close()

    第一种方法在检索一些涉及更高权限要求的文件目录时,无法全部检索到,且代码书写较复杂。相比之下,利用“OS”模块中的“os.walk()”进行遍历、输出,无论是从代码的书写还是最后结果的输出,都明显优于第一种利用循环语句进行递归得到的结果。

你可能感兴趣的:(Python:文件检索,输出绝对路径)