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))








  • 相关阅读:
    AngularJS定时器任务
    ssh常用
    HTTPClient模块的HttpGet和HttpPost
    eclipse下设置tomcat,修改Java代码不必重启tomcat
    【转】调试Release发布版程序的Crash错误
    C/C++ 函数压栈方式
    PHP 安全三板斧:过滤、验证和转义之转义篇 & Blade模板引擎避免XSS攻击原理探究
    让 MySQL 支持 emoji 存储
    Laravel 5.1 中创建自定义 Artisan 控制台命令实例教程
    常见的Web实时消息交互方式和SignalR
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/8890831.html
Copyright © 2011-2022 走看看