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月前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
7天前
|
存储 算法 文件存储
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。
|
1月前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
21天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
21天前
|
Go Python
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
|
5天前
|
SQL 关系型数据库 数据库连接
|
2月前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
62 20
|
2月前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
82 14
|
22天前
|
人工智能 数据库连接 开发工具
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
35 0
|
2月前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
106 8

热门文章

最新文章