zoukankan      html  css  js  c++  java
  • python 文件操作,os.path.walk()的回调函数打印文件名

    #coding=utf-8

    import os
    def find_file(arg,dirname,files):
        #for i in arg:
            #print i

        for file in files:
            file_path=os.path.join(dirname,file)
            print 'file_path:',file_path
            if os.path.isfile(file_path) and (arg[0] in file or arg[1] in file):
                print 'file:%s '%file_path

    os.path.walk(r'd:\test2',find_file,('.txt','.png'))

    c:Python27Scripts>python task_test.py
    file_path: d:\test2file1
    file_path: d:\test2file1.txt
    file:d:\test2file1.txt

    file_path: d:\test2file2
    file_path: d:\test2file1file2.txt
    file:d:\test2file1file2.txt

    file_path: d:\test2file2file3
    file_path: d:\test2file2file3.txt
    file:d:\test2file2file3.txt

    file_path: d:\test2file2file3file4.txt
    file:d:\test2file2file3file4.txt

    进一步看每次循环dirname,file都是什么:

    #coding=utf-8

    import os
    def find_file(arg,dirname,files):
        #for i in arg:
            #print i

        for file in files:
            print "dirname: %s, file:%s" %(dirname,file)
            file_path=os.path.join(dirname,file)
            print 'file_path:',file_path
            if os.path.isfile(file_path) and (arg[0] in file or arg[1] in file):
                print 'file:%s '%file_path

    os.path.walk(r'd:\test2',find_file,('.txt','.png'))

    c:Python27Scripts>python task_test.py
    dirname: d:\test2, file:file1
    file_path: d:\test2file1
    dirname: d:\test2, file:file1.txt
    file_path: d:\test2file1.txt
    file:d:\test2file1.txt

    dirname: d:\test2, file:file2
    file_path: d:\test2file2
    dirname: d:\test2file1, file:file2.txt
    file_path: d:\test2file1file2.txt
    file:d:\test2file1file2.txt

    dirname: d:\test2file2, file:file3
    file_path: d:\test2file2file3
    dirname: d:\test2file2, file:file3.txt
    file_path: d:\test2file2file3.txt
    file:d:\test2file2file3.txt

    dirname: d:\test2file2file3, file:file4.txt
    file_path: d:\test2file2file3file4.txt
    file:d:\test2file2file3file4.txt


    函数解释:

    os.path.walk(top, func, arg)

    回调函数(钩子),当一个事件发生时,自动调用指定函数

    参数说明:

    top:表示需要遍历的目录树的路径

    func:表示回调函数,对遍历路径进行处理的函数。所谓回调函数,是作为某个函数的的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务。该回调函数必须提供3个参数:第1个参数为walk()的参数arg,第2个参数表示目录列表dirname,第3个参数表示文件列表names。

    arg:是传递给回调函数func的元组,为回调函数提供处理参数,回调函数的第一个参数就是用来接收这个传入的元组的,参数arg可以为空)

    #coding=utf-8

    import os

    #回调函数

    #coding=utf-8

    import os

    #回调函数

    #调find_file函数时(1,2)传给arg,dirname和files是walk函数来传递的

    def find_file(arg, dirname, files):

        #for i in arg:

        #    print i

        for file in files:

            file_path = os.path.join(dirname, file)

            if os.path.isfile(file_path):

                print "file:%s" %file_path

    #调用

    os.path.walk(r"d: est2", find_file, (1,2))








  • 相关阅读:
    FileChannel的基本使用
    qq在线交流
    ci框架连接数据库
    绩效管理,如何实现“投资于人”?
    Asp.Net开发中传递的URL的长度问题
    ASP.NET程序中常用的三十三种代码
    认识ASP.NET配置文件Web.config
    JS实现图片幻灯片效果
    一些web开发中常用的、做成cs文件的js代码
    div自适应浏览器高度的问题
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/8890831.html
Copyright © 2011-2022 走看看