zoukankan      html  css  js  c++  java
  • os模块

    os模块

    os是与操作系统交互的模块 多用于文件处理

    import os
    '''
    项目的根目录,路径相关的值都用常量(大写)
    '''
    
    #获取当前文件的根目录
    #先获取当前文件的上一级目录
    DAY15_PATH = os.path.dirname(__file__)
    print(DAY15_PATH)
    >>> D:/xm/daily practice/day15
    #获取根目录
    BASE_PATH = os.path.dirname(DAY15_PATH)
    print(BASE_PATH)
    >>>D:/xm/daily practice
    
    
    # 路径的拼接,拼接文件“绝对路径”
    TEST_PATH = os.path.join(DAY15_PATH, 'nmb.txt')
    print(TEST_PATH)
    >>>D:/xm/daily practice/day15
    mb.txt
    
    
    # 判断“文件/文件夹”是否存在:若文件存在返回True,若不存在返回False
    print(os.path.exists(DAY15_PATH))
    print(os.path.exists('lzn.txt'))
    >>> True
        False
    
    
    # 判断“文件夹”是否存在
    print(os.path.isdir(DAY15_PATH))
    print(os.path.isdir('nmb.txt'))
    >>> True
        False
    
    
    # 创建文件夹
    NEW_PATH = os.path.join(DAY15_PATH, 'lzn')
    os.mkdir(NEW_PATH)
    
    
    #删除文件夹 :  只能删除空文件夹
    os.rmdir(NEW_PATH)
    
    # 获取某个文件夹中所有文件的名字
    name_list = os.listdir(r'D:/xm/daily practice/day15')
    print(name_list)  # 输出列表
    
    
    res = enumerate(name_list)
    print(type(res.__next__()))
    print(res.__next__())
    print(res.__next__())
    print(res.__next__())
    
    
    #需求: 让客户选择文件
    name_list = os.listdir(r'D:/xm/daily practice/day15')
    print(name_list)
    
    while True:
        # 打印所有文件
        for index,name in enumerate(name_list):
             print(f'编号{index}  文件名{name}')
    
        choice = input('输入你想看的文件编号').strip()
    
    
        # 2.限制用户必须输入数字,数字的范围必须在编号内
        # 若不是数字,则重新选择
    
        if not choice.isdigit():
            print('你懂什么是编号吗?')
            continue
        #若是数字 往下判断是否在范围内
        choice = int(choice)
    
        #若不在范围内,重新选择
        if choice not in range(len(name_list)):
            print('你眼睛好使吗?')
            continue
    
        file_name = name_list[choice]
    
        file_path = os.path.join(r'D:/xm/daily practice/day15',file_name)
        print(file_path)
    
        with open(file_path, 'r', encoding='utf-8')as f:
            print(f.read())
        break
        
    
  • 相关阅读:
    类 7.2访问控制与封装 笔记
    第七章 类(class)7.1 笔记
    10.4.3反向迭代器Reverse_iterator笔记
    10.4再探迭代器笔记
    10.3.4参数绑定 bind
    10.3lambda表达式笔记
    第10章 10.1-10.3笔记
    关于按下ctrl+z后,之后的cin失效的问题
    构造和改变一个string的其他方法
    BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
  • 原文地址:https://www.cnblogs.com/littleb/p/11892267.html
Copyright © 2011-2022 走看看