• python-文件操作常用功能-2


    目录

    列出子目录

    获取文件属性


    列出子目录

    如果要列出子目录而不是文件,请使用下面的方法。现在展示如何使用 os.listdir()os.path() :

    1. import os
    2. basepath = 'my_directory'
    3. for entry in os.listdir(basepath):
    4. if os.path.isdir(os.path.join(basepath,entry)): # os.path.isdir 判断是否是目录
    5. print(entry)
    6. '''
    7. shell1
    8. shell2
    9. '''

    当多次调用 os.path.join() 时,以这种方式操作文件系统就会变得很笨重。

    下面是如何使用 os.scandir()

    1. import os
    2. basepath ='my_directory'
    3. with os.scandir(basepath) as entries:
    4. for entry in entries:
    5. if entry.is_dir():
    6. print(entry.name)

    与文件列表中的示例一样,此处在 os.scandir() 返回的每一项上调用 .is_dir() 。如果这项是目录,则 is_dir() 返回 True,并打印出目录的名称。输出结果和上面相同。

    下面是如何使用 pathlib.Path()

    1. from pathlib import Path
    2. basepath = Path('my_directory')
    3. for entry in basepath.iterdir():
    4. if entry.is_dir():
    5. print(entry.name)
    6. '''
    7. shell1
    8. shell2
    9. '''

    .iterdir() 迭代器返回的每一项上调用 is_dir() 检查是文件还是目录。如果该项是目录,则打印其名称,并且生成的输出与上一示例中的输出相同。


    获取文件属性

    Python可以很轻松的获取文件大小和修改时间等文件属性。可以通过使用 os.stat()os.scandir()pathlib.Path 来获取。

    os.scandir()pathlib.Path() 能直接获取到包含文件属性的目录列表。这可能比使用 os.listdir() 列出文件然后获取每个文件的文件属性信息更加有效。

    下面的例子显示了如何获取 my_directory 中文件的最后修改时间。以时间戳的方式输出:

    1. import os
    2. with os.scandir('my_directory') as entries:
    3. for entry in entries:
    4. info = entry.stat()
    5. print(info.st_mtime)

    os.scandir() 返回一个 ScandirIterator 对象。ScandirIterator 对象中的每一项有 .stat() 方法能获取关于它指向文件或目录的信息。.stat() 提供了例如文件大小和最后修改时间的信息。在上面的示例中,代码打印了 st_time 属性,该属性是上次修改文件内容的时间。

    pathlib** 模块具有相应的方法,用于获取相同结果的文件信息:**

    1. from pathlib import Path
    2. basepath = Path('my_directory')
    3. for entry in basepath.iterdir():
    4. info = entry.stat()
    5. print(info.st_mtime)

    在上面的例子中,循环 .iterdir() 返回的迭代器并通过对其中每一项调用 .stat() 来获取文件属性。st_mtime 属性是一个浮点类型的值,表示的是时间戳。为了让 st_time 返回的值更容易阅读。

  • 相关阅读:
    java计算机毕业设计ssm的KTV点歌系统(源码+系统+mysql数据库+Lw文档)
    乐歌智能升降桌、乐歌智能健身椅,为精英生活助力
    ping命令使用示例解析
    LeetCode //C - 236. Lowest Common Ancestor of a Binary Tree
    Android学习之路(17) Android Adapter详解
    ES6 Class和Class继承
    虹科培训 | 虹科携手PLCopen开展IEC 61131-3国际工程师培训
    郭晶晶家的象棋私教,好家伙是个机器人
    React Hooks——state hooks
    神经网络常用的训练方式,神经网络训练过程详解
  • 原文地址:https://blog.csdn.net/rx3225968517/article/details/137278614