os模块的作用:os 模块提供了非常丰富的方法用来处理文件和目录(管理和维护目录以及文件)。

os.path模块的作用:主要用于获取文件的属性(管理路径的(物理地址))。

小生总结了一些平时常用到的属性和函数。

属性:

1.name:返回当前正在使用的操作系统的内核版本;windows系统环境下 -->输出 nt

2.environ:返回当前操作系统中所有的环境变量以及其内容,以键值对的形式进行存储管理(存入到environ中)

3.environ.get('环境变量名'):获取某一个环境变量的内容,以字符串的形式返回

  1. print(os.name)
  2.  
  3. print(os.environ)
  4.  
  5. print(os.environ.get('path'))

路径问题(概念):

绝对路径:称为完成路径;一串物理地址(字符串类型),特点:带盘符。

相对路径:相对的概念,拿某一个位置作为参照物,得到相关的路径,理解为相对路径;区分:不带盘符 函数。

函数:

1.getcwd():返回当前正在被执行的文件的绝对路径(描述一串字符串格式的物理地址)

2.listdir(;path):将path路径下的子目录名和文件名以字符串类型保存到列表中返回   【注意】不包含间接子内容

创建目录:

3.mkdir(path):创建单层目录,不能级联创建目录

4.makedirs(path):创建多级目录,也可以创建单层目录

[注意】如果路径下已经存在相同名字的目录,继续点击创建,会报错:FileExistsError。对于mkdir()而言:只能一次创建一层目录,不能批量(级联)创建目录;会报错:FileNotFoundError

删除目录:

5.rmdir(path):删除单层目录,不能级联删除目录

6.removedirs(path):删除多层目录,也可以删除单层

删除文件:

7.remove(path):删除文件

8.rename(src,dest):重命名目录或者文件

【注意】:删除操作有风险,使用需谨慎!!!因为不走回收站...

  1. print(os.getcwd()) # 获取当前目录
  2.  
  3. print(os.listdir(r'C:\Users\admin')) # 列出当前目录下的子目录名和文件名
  4.  
  5. os.mkdir(r'D:\python\project\hello1') # 创建目录
  6.  
  7. os.mkdir(r'aa') # 创建目录aa
  8.  
  9. os.mkdir(r'bb\cc\dd') # 显示FileNotFoundError错误类型 ,不能级联创建目录
  10.  
  11. os.makedirs(r'bb\cc\dd') # 创建级联目录
  12.  
  13. os.rmdir(r'D:\python\project\hello1') # 删除hello1目录
  14.  
  15. os.rmdir(r'aa') # 删除aa目录
  16.  
  17. os.rmdir(r'bb\cc\dd\ee') # 删除ee目录
  18.  
  19. os.removedirs(r'bb\cc\dd') # 级联删bb\cc\dd
  20.  
  21. os.removedirs(r'D:\python\project\hello') # 可删单层hello
  22.  
  23. os.remove(r'abc.html') # 删除文件
  24.  
  25. os.rename(r'aa.html',r'bb.html') # 相对路径下,把文件名为aa.html改为bb.html
  26.  
  27. os.rename(r'D:\python\project\note.txt',r'D:\python\project\笔记.txt') # 绝对路径下,把文件名note改为笔记

os模块下的path模块的使用:

1.join(first,second):将first和second两部分内容(字符串数据)拼接得到一个新的串(描述物理地址),(不关注路径是否真实存在)

2.getsize(path):返回path路径(锁定到文件层面)所包含的字节量

3.exists(path):判断path描述的物理路径是否真实存在;如果存在,返回True;反之,返回False

4.isfile(path):判断path描述的物理路径是否是一个文件;如果存在,返回True;反之,返回False, (包含了exists的作用)

5.isdir(path):判断path描述的物理路径是否是一个目录;如果存在,返回True;反之,返回False, (包含了exists的作用)

6.dirname(path):返回path中最后一个\前面的部分(串),最终以字符串的形式返回

7.basename(path):返回path中最后一个\后面的部分(串),最终以字符串的形式返回

8.split(path):将path变量中最后一个\前面的部分(串),放入到元祖的第一个元素位;将path变量中最后一个\后面的部分(串),放入到元祖的第二个元素位;最终返回元祖对象

9.splitext(path): 将path变量中最后一个.前面的部分(串),放入到元祖的第一个元素位;将path变量中最后一个.以及其后面的部分(串),放入到元祖的第二个元素位;最终返回元祖对象

10.realpath(path): 返回path的真实路径

11.abspath(path): 返回绝对路径

【注意】os.path.abspath()获取的不是真实路径,它的的作用是对给定文件名前加上当前工作目录的绝对路径,至于你给定的文件名对应文件是否真的存在并不关心(因为你有可能是想要创建文件)

  1. 1 import os
    2
  2. print(os.path.join(r'D:\python\project','1.txt')) # 将目录和文件名合成一个路径 D:\python\project\1.txt
  3.  
  4. print(os.path.getsize(r'D:\python\project\123.png')) # 54
  5. print(os.path.getsize(r'D:\python\project')) #
  6.  
  7. path = r'D:\python\project\note.txt'
  8.  
  9. print(os.path.exists(path))
  10. print(os.path.isfile(path))
  11. print(os.path.isdir(path))
  12.  
  13. str1 = os.path.dirname(path)
  14. print(str1,type(str1)) # 返回目录路径 D:\python\project <class 'str'>
  15.  
  16. str2 = os.path.basename(path)
  17. print(str2,type(str2)) # 返回文件名 note.txt <class 'str'>
  18.  
  19. tp1 = os.path.split(path)
  20. print(tp1,type(tp1)) # 分割文件名与路径 ('D:\\python\\project','note.txt') <class 'tuple'>
  21.  
  22. tp2 = os.path.splitext(path)
  23. print(tp2,type(tp2)) # ('D:\\python\\project\\note','.txt') <class 'tuple'>
  1. import os
  2.  
  3. os.path.realpath("b/1.txt") # '/root/a/1.txt'
  4.  
  5. # 假设1.jpg的路径是D:\images\1.jpg, 其中D:\code是我当前的工作目录
  6. file='1.jpg'
  7. print(os.path.abspath(file)) # 输出 D:\code\img1.jpg

10.python内置模块之os模块的更多相关文章

  1. Python 内置模块:os模块

    Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是windo ...

  2. python内置模块[sys,os,os.path,stat]

    python内置模块[sys,os,os.path,stat] 内置模块是python自带功能,在使用内置模块时,需要遵循 先导入在 使用 一.sys 对象 描述 sys.argv 命令行参数获取,返 ...

  3. Python内置模块和第三方模块

    1.Python内置模块和第三方模块 内置模块: Python中,安装好了Python后,本身就带有的库,就叫做Python的内置的库. 内置模块,也被称为Python的标准库. Python 2.x ...

  4. Python中使用os模块执行远程命令

    1. 使用os模块远程执行命令 服务端代码 1 import socket 2 import os 3 4 sh_server = socket.socket() #创建一个socket对象 5 sh ...

  5. 善于利用python中的os模块

    作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...

  6. Python基础入门-os模块

    今天我们来介绍一下os模块中常用的一些方法,当然python中的os模块中提供的使用方法有很多,但是这里面小编会列举出来一些和实际工作中应用的相关的方法,而且会有一些实际的例子方便大家对os模块理解. ...

  7. Python内置OS模块用法详解

    大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示.刚入门的读者千万不要错过! 很多人学习python,不知 ...

  8. python的内置模块之os模块方法详解以及使用

    1.getcwd() 获取当前工作路径 import os print(os.getcwd()) C:\python35\python3.exe D:/pyproject/day21模块/os模块.p ...

  9. python中的os模块

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

随机推荐

  1. [HAOI2015]树上操作(树链剖分)

    [HAOI2015]树上操作(luogu) Description 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增 ...

  2. 理解Javascript的柯里化

    前言 本文1454字,阅读大约需要4分钟. 总括: 本文以初学者的角度来阐述Javascript中柯里化的概念以及如何在工作中进行使用. 原文地址:理解Javascript的柯里化 知乎专栏: 前端进 ...

  3. centos MySQL安装与卸载

    1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/ wget http://dev.mysql.com/g ...

  4. config 模块

    import configparser #配置文件 config = configparser.ConfigParser()config["DEFAULT"] = {'Server ...

  5. Maven: 把聚合工程下的项目导入 Ecplise

    1.右键点击import 2.Import Existing Maven Projects 3.选择要导入的工程 4.完成

  6. JSP&Servlet学习笔记----第5章

    Servlet进阶API 每个Servlet都必须由web容器读取Servlet设置信息(标注或者web.xml).初始化. 对于每个Servlet的设置信息,web容器会为其生成一个ServletC ...

  7. AI: 字体设计中的贝塞尔曲线

    http://www.xueui.cn/tutorials/illustrator-tutorials/designers-must-know-the-secret-of-the-bezier-cur ...

  8. 导弹拦截(dp复习)

    题目描述:求最长下降子序列的长度 in: 71 7 3 5 9 4 8 out: 4 解释:1 3 4 8/1 3 5 8 长度为四 这让我想到了hdu上导弹拦截那道题,是求最长上升子序列长度 其转移 ...

  9. 题解 SDOI2010 【栗栗的书架】

    \[ Preface \] 看到这题洛谷标签有 主席树 ,还以为是什么二维主席树的玄学做法(雾 \[ Description \] 给出一个 \(R×C\) 的矩阵. 一共 \(m\) 次询问,每次询 ...

  10. 小程序websocket心跳库——websocket-heartbeat-miniprogram

    前言 在16年的时候因为项目接触到websocket,而后对心跳重连做了一次总结,写了篇博客,而后18年对之前github上的demo代码进行了再次开发和开源,最终封装成库.如下: 博客:https: ...