Python递归列出目录中文件脚本及其匿名函数

简介:
+关注继续查看

1.递归列出目录里的文件的脚本举例

    列出目录中的文件可以通过下面方法:os.listdir()

    In [1]: import os

    In [4]: os.listdir('/root')

    Out[4]:

    ['.tcshrc',

    '.bash_history',

    '.bashrc',

    'ENV',

    '.cache',

    '.config',

    '.cshrc',

    '.bash_logout',

    'python',

    '.ssh',

    'shell',

    '.bash_profile',

    '.ipython',

    '.viminfo',

    'dictionary.txt',

    '1.txt']

    

判断是否为目录:

    In [5]: os.path.isdir('/home')

    Out[5]: True


判断是否为文件:

    In [7]: os.path.isfile('/etc/rc.local')

    Out[7]: True


拼接文件名字的绝对路径:

    In [8]: os.path.join('/etc/','passwd','abc')

    Out[8]: '/etc/passwd/abc'


列出目录下所有文件脚本如果下:

    #!/usr/bin/env python

    # @Time     :2018-01-05 15:11

    # @Author   :FengXiaoqing

    # @file     :listDir.py

    import os

    import sys

    def print_files(path):

        lsdir = os.listdir(path)

        dirs = [i for i in lsdir if os.path.isdir(os.path.join(path,i))]

        files = [i for i in lsdir if os.path.isfile(os.path.join(path,i))]

        if dirs:

            for d in dirs:

                print_files(os.path.join(path,d))

        if files:

            for f in files:

                print os.path.join(path,f)

    print_files(sys.argv[1])


2.匿名函数lambda

    lambda函数是一种快速定义单选的最小函数,可以用在任何需要函数的地方。

    3*5实现方法:

    In [1]: def fun(x,y):

    ...:     return x * y

    ...:

    In [2]: fun(3,5)

    Out[2]: 15


匿名函数定义如果下:

    In [3]: lambda x,y:x * y

    Out[3]: <function __main__.<lambda>>    #返回的对象

    In [4]: r = lambda x,y:x * y

    In [6]: r(3,5)

    Out[6]: 15


匿名函数优点:

    1.使用python写一些脚本时候,使用lambda可以省去定义函数的过程,让代码更加精简。

    2.对于一些抽象的,不会被别的地方再重复使用的函数,有时候函数起个名字也是个难题,使用lambda不需要层次理论考虑命名的问题。

    3.使用lambda在某些时候让代码更容易理解。


lambda基础:

    lambda语句中,冒号前是参数,可以有多个,逗号隔开,冒号右边是返回值。

    lambda语句构建的其实是一个函数对象。


help(reduce)

    Help on built-in function reduce in module __builtin__:

    reduce(...)

    reduce(function, sequence[, initial]) -> value

    Apply a function of two arguments cumulatively to the items of a sequence,

    from left to right, so as to reduce the sequence to a single value.

    For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates

    ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items

    of the sequence in the calculation, and serves as a default when the

    sequence is empty.

    (END)


reduce二元计算:

    In [19]: def add(x,y):

    return x + y

    ....:

    In [20]: add(1,3)

    Out[20]: 4


求1到100相加的和:

    In [23]: reduce(add,range(1,101))

    Out[23]: 5050


    In [25]: reduce(lambda x,y:x + y ,range(1,101))

    Out[25]: 5050


求阶乘:

    In [26]: reduce(lambda x,y:x * y ,range(1,6))

    Out[26]: 120


习题

    1. 从终端接收若干个数字,要求使用filter()函数,将输入的不是数字的值剔除掉(用户输入的内容有随机性,当我们要接收一个数字的时候,他可能会输入一个字符串过来,要求当用户输入的不是数字,就剔除掉)


    2. 从终端接收若干个以空格隔开的字符串,然后去除所有的26个字符之外的字符后,打印到屏幕上

    要求:使用map()函数,map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。


    3.从终端接收若干个以空格隔开的字符串

    (1).以空格隔开的字符串为用户想要输入的一个值

    (2).用户在输入时不小心按出来了字母键

    示例如下

    "afda111 dafd222 3dfad33 4ss4dd4"

    这个字符串,其实是用户想要求 111 222 333 444 的和

    要求:把每个值中的字母去掉,并计算出所有值的和

提示:使用reduce函数,结合前两题使用过的方法,可以很简单的算出



本文转自 枫叶云  51CTO博客,原文链接:http://blog.51cto.com/fengyunshan911/2057986

相关文章
|
1月前
|
Unix Shell Linux
Python文件的属性获取,重命名,目录的创建,显示和改变
Python文件的属性获取,重命名,目录的创建,显示和改变
29 0
|
1月前
|
数据采集 SQL 前端开发
[Python]学习笔记目录
[Python]学习笔记目录
|
1月前
|
Linux Shell iOS开发
【100天精通python】Day16:python模块_模块的搜索目录和导入模块异常时的处理方法
【100天精通python】Day16:python模块_模块的搜索目录和导入模块异常时的处理方法
29 0
|
2月前
|
数据可视化 前端开发 JavaScript
python+Django+Mysql+Echarts数据可视化实战教程(2):Django环境下web目录的配置
python+Django+Mysql+Echarts数据可视化实战教程(2):Django环境下web目录的配置
94 0
|
3月前
|
测试技术 Python
Python——实现敏感目录扫描
Python——实现敏感目录扫描
102 0
|
3月前
|
Web App开发 Python
Selenium Python 更改 chrome 默认下载目录
关于使用Selenium和Python无法更改Google Chrome默认下载目录的可能问题和解决方法,按照以上步骤,你应该能够成功使用Selenium和Python更改Google Chrome的默认下载目录。
103 0
|
4月前
|
XML Java Apache
python文档Word助手转换pdf目录页码获取统计等源码
在PyCharm中运行《Word助手》即可进入如图1所示的系统主界面。在该界面中,通过顶部的工具栏可以选择所要进行的操作。
68 0
|
4月前
|
C++ Python
Python 给自己的博客做个目录,从网页中抓取标题和创建日期
Python 给自己的博客做个目录,从网页中抓取标题和创建日期
57 0
|
4月前
|
编解码 数据安全/隐私保护 Python
Python操作FTP服务器实现文件和文件夹的上传与下载,python清理ftp目录下的所有文件和非空文件夹
Python操作FTP服务器实现文件和文件夹的上传与下载,python清理ftp目录下的所有文件和非空文件夹
81 0
|
4月前
|
编解码 数据安全/隐私保护 Python
Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
97 0
相关产品
云迁移中心
推荐文章
更多