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. (HK1-1)海康网络摄像机的使用

    https://blog.csdn.net/u014552102/article/details/86700057 一.手机客户端操作:  首先在莹石商城官网https://www.ys7.com/下 ...

  2. js面向对象的笼统介绍

    **js进阶大纲**简单的表面组成:**对象的属性分两类,一类是数据属性,一类是访问器属性**1,数据属性用来保存数据.2,访问器属性不用来保存数据,而是定义了get,set两个函数,读取属性时,自动 ...

  3. T4模板 简单使用

    原文:https://www.cnblogs.com/sanduo8899/p/3964563.html <#@ template debug="false" hostspe ...

  4. C++标准库中的std::endl究竟做了什么?

    先抓出std::endl的源代码: /** *  @file  ostream *  @brief  Write a newline and flush the stream. * *  This m ...

  5. LEDE安装zerotier 无法启动解决方法

    进入命令行模式,vi /etc/config/zerotier文件,把option enabled '0'的0改为1.

  6. java并发编程(九)ThreadLocal & InheritableThreadLocal

    参考文档: https://blog.csdn.net/u012834750/article/details/71646700 threadlocal内存泄漏:http://www.importnew ...

  7. @RequestMapping 用法详解

    简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestM ...

  8. eclipse&myeclipse 生成jar包后,spring无法扫描到bean定义

    问题:eclipse&myeclipse 生成jar包后,spring无法扫描到bean定义 在使用getbean或者扫包时注入bean失败,但在IDE里是可以正常运行的? 原因:导出jar未 ...

  9. mysql 添加注释

    给表添加注释:  alter table m_tb100_disabledsoldier comment '残疾士兵';   给表中的字段添加注释alter table m_tb100_disable ...

  10. k8s+Jenkins+GitLab-自动化部署项目

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...