os 模块

功能:与操作系统交互的模块

使用方式:import os

常用的几种功能

  • os.path.dirname(文件名) 用于获取当前文件的所在目录

    import os
    # 获取当前文件的所在目录
    file_path = os.path.dirname(__file__)
    print(file_path)
    # 获取当前文件的根目录
    BASE_PATH = os.path.dirname(file_path)
    print(BASE_PATH)

注意:项目的根目录,路径相关的值都用常量

  • os.path.join(路径,文件名) 文件路径的拼接,常用来做绝对路径的拼接

    import os
    # 获取当前文件所在的位置
    file_path = os.path.dirname(__file__)
    # 将a.txt的地址拼接成绝对路径
    new_path = os.path.join(file_path,"a.txt")
    print(new_path)
  • os.path.exists(文件/文件夹名) 判断文件或文件夹是否存在,存在返回True,不存在返回False

    import os
    # 获取当前文件所在的位置
    file_path = os.path.dirname(__file__)
    # 将a.txt的地址拼接成绝对路径
    new_path = os.path.join(file_path,"a.txt")
    # 判断这个文件是否存在
    res = os.path.exists(new_path)
    print(f"{new_path}是否存在:{res}")
  • os.path.isdir(文件夹名) 判断文件夹是否存在,存在返回True,不存在返回False

  • os.path.isfile(文件名) 判断文件是否存在,存在返回True,不存在返回False

建议:直接使用 os.path.exists()

  • os.mkdir() 创建一个新文件夹

    import os
    # 获取当前文件所在的位置
    file_path = os.path.dirname(__file__)
    # 拼接一个绝对路径
    a_file = os.path.join(file_path, "new_dic")
    # 新增new_dic 文件夹
    file = os.mkdir(a_file)
  • os.rmdir 删除文件夹,只能删除空文件夹

  • os.listdir(文件夹名/绝对路径) 获取某个文件夹中所有文件清单,返回列表list

    import os
    # 获取当前文件所在的位置
    file_path = os.path.dirname(__file__)
    # 获取该文件下所有文件的清单,返回列表
    file_list = os.listdir(file_path)
    print(file_list)

需求:显示文件夹里所有文件的清单,让用户选择需要打开的文件

import os

file_path = r"E:/Oldboy/python3/20191118"
# 获取文件中所有文件的清单,返回一个列表
file_list = os.listdir(file_path)
while True:
# 获取列表中的值,并赋予索引
for index,name in enumerate(file_list):
print(f"编号:{index}\t文件名称:{name}")
# 验证用户输入的文件编号的合法性
choice = input("请输入要打开的文件编号:")
if not choice.isdigit():
print("文件编号必须是数字")
continue
choice = int(choice)
if choice not in range(len(file_list)):
print("文件编号不在范围内")
continue
# 获取用户需要打开的文件
file_path = file_list[choice]
# 打开文件,读取内容并返回
with open(file_path,"r",encoding="utf-8") as f:
data = f.read()
print(data)

python基础-os模块的更多相关文章

  1. python基础:os模块中关于文件/目录常用的函数使用方法

    Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...

  2. python基础--os模块和sys模块

    os模块提供对操作系统进行调用的接口 # -*- coding:utf-8 -*-__author__ = 'shisanjun' import os print(os.getcwd())#获取当前工 ...

  3. Python基础-os模块 sys模块

    sys模块 与操作系统交互的一个接口 文件夹相关 os.makedirs('dirname1/dirname2')    可生成多层递归目录 os.removedirs('dirname1')    ...

  4. python基础之模块之os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… 另 ...

  5. Python之os模块和sys模块

    OS模块:print(os.getcwd())os.chdir('..') #返回上一层目录print(os.getcwd()) os.makedirs('xxxx') #生成多级递归目录os.mkd ...

  6. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  7. python基础——第三方模块

    python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的.  如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了.  如果你正在使用Window ...

  8. python基础——使用模块

    python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  9. python中os模块在windows下的使用

    今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作. 与Python内置函数相比这里这里的函数功能更多样化,功能也更强大.但是学习过程中我发现很多函数都是只适用于unix系统 ...

随机推荐

  1. mybatis学习3

    parameterType(输入类型) 传递简单类型::使用#{}占位符,或者${}进行sql拼接 传递pojo对象: Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为p ...

  2. Pandas | 22 时间差

    时间差(Timedelta)是时间上的差异,以不同的单位来表示.例如:日,小时,分钟,秒.它们可以是正值,也可以是负值.可以使用各种参数创建Timedelta对象,如下所示 - 字符串 通过传递字符串 ...

  3. [PHP] JQuery+Layer实现添加删除自定义标签代码

    JQuery+Layer实现添加删除自定义标签代码 实现效果如下: 实现代码如下: <!doctype html> <html> <head> <meta c ...

  4. 洛谷P1578 奶牛牧场(悬线法思想)

    题目 悬线法的思想--即扫描线的思想,每个矩阵必定是由两个障碍来构成左右边界或者上下边界. 如果此两个障碍组成了左右边界,枚举这两个障碍中途更新这两个障碍之间的矩阵上下边界,并且更新最大值. 考虑如何 ...

  5. springboot2.x自定义拦截把static静态文件给拦截的坑

    新人新帖,喷后请指正,谢谢 1.王中王,坑中坑 和很多人一样,我在springboo自定义配置登录拦截的时候,写一个WebConfig类继承WebMvcConfigureAdapter,重写AddRe ...

  6. [Gamma]Scrum Meeting#10

    github 本次会议项目由PM召开,时间为6月5日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译坐 ...

  7. Spring AOP 代理类,BeanNameAutoProxyCreator cglib

    BeanNameAutoProxyCreator支持拦截接口和类,但不支持已经被jdk代理过的类$Proxy8.使用cglib才能代理,如下 <!-- 通过bean的名字来匹配选择要代理的bea ...

  8. Salesforce LWC学习(八) Look Up组件实现

    本篇参考https://www.salesforcelwc.in/2019/10/lookup-in-lwc.html,感谢前人种树. 我们做lightning的时候经常会遇到Look up 或者MD ...

  9. 加入mapstruct后出现 找不到符号 符号: 方法 setXX 的解决方法

    加入lombok解决 <build> <plugins> <plugin> <groupId>org.springframework.boot</ ...

  10. spring boot2X整合Consul一使用RestTemplate实现服务调用

    Consul可以用于实现分布式系统的服务发现与配置 服务调用有两种方式: A.使用RestTemplate 进行服务调用 负载均衡——通过Ribbon注解RestTemplate B.使用Feign ...