zoukankan      html  css  js  c++  java
  • 文件搜索

    • 自己的代码文件名称不能跟模块名称相同(否则import该模块时导入的是同名的文件),也不能放在同一路径下
    • 关于路径中的“/”和反斜杠“”
      • Win中用来分隔文件夹
      • 在Python中还用于转义,因此就变成了\
      • Mac和Linus用/
    #输出os的路径
    import os
    print(os.getcwd())
    

    如果程序在不同的系统中运行,则可以:

    import os
    print(os.path.join('MyProjects','AI'))
    
    • 绝对路径和相对路径
      • 相对路径,如:./file

    输出os文件夹下的文件夹和文件

    import os
    print(os.listdir())
    

    按行输出

    for item in os.listdir():
        print(item)
    

    判断是文件夹还是文件

    for item in os.listdir():
        print(item, os.path.isdir(item))
    
    for file in os.scandir():
        print(file.name, file.path, file.is_dir())
    

    作业

    1. 找出当前目录下所有非文件夹的文件
    2. 统计其中包含有“Python”单词的文件数,不区分大小写
    3. 输出文件数量
    import os
    summ = 0
    file = []
    for i in os.listdir():
        if os.path.isdir(i) == False:
            print(i)
            file.append(i)
            if 'python' in i.lower():
                summ +=1
    print(summ)
    print(len(file))
    
    #用累加和求列表长度两种方法来计数
    

    搜索文件

    import os
    for dirpath, dirnames, filenames in os.walk('./'):
        print(f'{dirpath}:')
        print(filenames)
    
    # 输出当前文件夹下的所有文件(包括子文件夹)
    
    
    # 匹配文件类型有几种方法:用字符串匹配, glob模块,fnmatch匹配
        print('abc.txt'.startswith('ab')) == True
        print('abc.txt'.endswith('.txt')) == True
    
        import glob
        print(glob.glob('*.py'))
        # 不包含子文件夹
    
        # 把更深层的文件找出
        import glob
        print(glob.glob('**/*.py', recursive=True))
        # **表示任意层文件夹
        # recursive=True会不断进入文件夹
        
        import fnmatch
        print(fnmatch.fnmatch('lesson1.py', 'le*1.py') == True
        print(fnmatch.fnmatch('lesson1.py', 'le*[1-9].py') == True
    
    # 匹配模式:*-匹配所有,?-匹配任意单个字符,[sep]-匹配sep中的任意字符,[!sep]-匹配任何不在sep中的字符
    

    返回文件信息

    import os
    for file in os.scandir():
        print(file.name, file.stat().st_size / 1024)
    
    
    # st_size:文件大小(单位:byes),除以1024即为KB
    # s_atime:文件最近访问时间
    # st_mtime:文件最近创建时间
    # st_ctime:Windows下表示创建时间
    # st_birthtime:只在Mac和Linux下可用,表示创建时间
    
    # 转换时间戳
    import time
    print(tme.ctime(156776448))
    
    # Fri Sep 6 18:07:08 2019
    
    import datetime
    that_time = datetime.datetime.fromtimestamp(156776448)
    print(that_time)
    print(that_time.hour, that_time.minute, that_time.second)
    
    # 2019-09-06 18:07:08
    # 18 7 8
    

    作业

    1. 找出文件夹下(包括子文件夹)的所有大于100MB的.zip文件
    2. 筛选以上文件,早于2019年创建的
    3. 输出这些文件的路径
  • 相关阅读:
    Django请求的生命周期图解及流程
    Django中请求的生命周期
    127.0.0.1和0.0.0.0和本机IP的区别
    Linux中errno的含义
    wireshark 过滤表达式
    GDB调试
    【LinuxShell】grep用法详解
    Linux下 tftp 服务器的安装与使用
    设备掐断重启
    GDB disassemble
  • 原文地址:https://www.cnblogs.com/zhangqq02/p/12933751.html
Copyright © 2011-2022 走看看