一 前言

OS(operating system)直接对操作系统进行操作的接口,功能真是非常强大;允许知识追寻者简要概括一下整体模块

  1. 如果要对文件进行读写可以使用os.open()方法
  2. 如果要对文件路径进行操作可以使用os.path模块
  3. 如果要对所有文件的所有行读取到命令行进行操作可以使用fileinput模块
  4. 如果要创建临时文件可以使用tempfile模块
  5. 如果要对高级文件或者目录进行处理可以使用shutil模块

知识的体系很重要,比如很多书籍文章只知如何使用OS对路径进行操作,但整体的OS是什么,包含哪些模块都没有介绍。本文的重点是对path进行操作,参和一些os常用函数,结合之前文件操作的专题可以达到很好的效果;

二 OS常用函数介绍

函数名 函数说明
os.getcwd() 返回工作目录
os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回基本名
os.path.commonpath(paths) 返回所有路径中共同的最长的子路径
os.path.commonprefix(list) 返回所有路径中共同的前缀
os.path.dirname(path) 返回当前文件所在的目录
os.path.exists(path) 判定目录是否存在,存在返回True, 否则False
os.path.getatime(path) 返回上一次进入路径的时间
os.path.getmtime(path) 返回上一次路径修改的时间
os.path.getctime(path) unix返回元数据修改时间,windows返回路径创建时间
os.path.getsize(path) 返回路径的大小,单位字节
os.path.isabs(path) 判定是否是绝对路径,是返回True,否则False
os.path.isfile(path) 判定是否是文件,是返回True,否则False
os.path.isdir(path) 判定是否是目录,是返回True,否则False
os.path.islink(path) 是否是链接文件,是返回True,否则False
os.path.join(path, *paths) 路径拼接
os.path.normcase(path) windows平台路径字母全部转为小写,如果存在斜杆会转为反斜杠
os.path.relpath(path, start=os.curdir) 返回与start比较后的相对路径
os.path.split(path) 以基本名为基准切割路径
os.makedirs() 创建文件夹

三 函数具体操作

3.1 os.getcwd()

获取当前工作目录

# -*- coding: utf-8 -*-
import os """ 获取当前工作 """
print(os.getcwd())

输出:

C:\python_work\study_py_base\base\fileopration

3.2os.path.abspath(path)

返回绝对路径,. 号表示当前目录

# -*- coding: utf-8 -*-
import os """ 返回绝对路径 """
print(os.path.abspath("."))

输出:

C:\python_work\study_py_base\base\fileopration

3.3 os.path.basename(path)

返回基本名,基本名也就是文件的简单名称比如 zszxz.txt;

# -*- coding: utf-8 -*-
import os
"""返回基本名""" print(os.path.basename("C:\python_work\study_py_base\base\fileopration\os_op.py"))

输出:

os_op.py

3.4os.path.commonpath(paths)

返回共同的路径,最大长度返回;

# -*- coding: utf-8 -*-
import os """ 返回共同的路径 """
print(os.path.commonpath(['/usr/var/lib','/usr/lib']))

返回结果:

\usr

3.5os.path.commonprefix(list)

返回路径的共同前缀。注意,前缀跟3.4节的共同路径是不同的东西;

# -*- coding: utf-8 -*-
import os """ 返回路径共同前缀 """
print(os.path.commonprefix(['/usr/var/lib','/usr/lib']))

返回结果:

/usr/

3.6 os.path.dirname(path)

返回目录,lib的目录是/usr/var

# -*- coding: utf-8 -*-
import os """ 返回目录 """
print(os.path.dirname('/usr/var/lib'))

输出:

/usr/var

3.7 os.path.exists(path)

判定目录是否存在,存在返回True, 否则False

# -*- coding: utf-8 -*-
import os """判定路径是否存在"""
print(os.path.exists('/usr/var/lib'))
print(os.path.exists('C:\python_work'))

输出:

False
True

3.8 os.path.getatime(path)

返回上一次进入路径的时间

# -*- coding: utf-8 -*-
import os print(os.path.getatime('C:\python_work'))

输出:

1578921313.4634616

3.9 os.path.getmtime(path)

返回上一次路径修改的时间

# -*- coding: utf-8 -*-
import os """返回上一次路径修改的时间"""
print(os.path.getmtime('C:\python_work'))

输出:

1578921313.4634616

3.10 os.path.getctime(path)

unix返回元数据修改时间,windows返回路径创建时间

# -*- coding: utf-8 -*-
import os """unix返回元数据修改时间,windows返回路径创建时间"""
print(os.path.getctime('C:\python_work'))

输出:

1577777602.8199444

3.11 os.path.getsize(path)

返回路径的大小,单位字节;

# -*- coding: utf-8 -*-
import os """返回路径的大小,单位字节;"""
print(os.path.getsize('.'))

输出:

4096

3.12 os.path.isabs(path)

判定是否是绝对路径,是返回True,否则False

# -*- coding: utf-8 -*-
import os """ 判定是否是绝对路径"""
print(os.path.isabs('.'))
print(os.path.isabs('C:\python_work'))

输出:

False
True

3.13 os.path.isfile(path)

判定是否是文件,是返回True,否则False

# -*- coding: utf-8 -*-
import os """ 判定是否是文件 """
print(os.path.isfile('os_op.py'))
print(os.path.isfile('.'))

输出

True
False

3.14 os.path.isdir(path)

判定是否是目录,是返回True,否则False

# -*- coding: utf-8 -*-
import os
print(os.path.isdir('os_op.py'))
print(os.path.isdir('.'))

输出:

False
True

3.15 os.path.islink(path)

是否是链接文件,是返回True,否则False, 需要被python运行时环境所支持,否则会一直返回False

# -*- coding: utf-8 -*-
import os """是否是链接文件"""
print(os.path.islink('os_op.py'))

3.16 os.path.join(path, *paths)

路径拼接

# -*- coding: utf-8 -*-
import os print(os.path.join('usr', 'local','bin'))

输出

usr\local\bin

3.17 os.path.normcase(path)

windows平台路径字母全部转为小写,如果存在斜杆会转为反斜杠,其它平台不改变

# -*- coding: utf-8 -*-
import os
print(os.path.normcase('/USR/Local/bin'))

输出:

\usr\local\bin

3.18 os.path.relpath(path, start=os.curdir)

返回与start比较后的相对路径

# -*- coding: utf-8 -*-
import os
print(os.path.relpath('C:\python_work', 'C:\\'))

输出

python_work

3.19 os.path.split(path)

以基本名为基准切割路径

# -*- coding: utf-8 -*-
import os
print(os.path.split('C:\python_work\study_py_base\base\fileopration\os_op.py'))

输出

('C:\\python_work\\study_py_base\x08ase\x0cileopration', 'os_op.py')

3.20 os.makedirs()

创建文件夹

os.makedirs('C:\mydata\generator\py')

python专题知识追寻者对OS的理解的更多相关文章

  1. Python专题三字符串的基础知识

    Python专题三字符串的基础知识 在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引号. ...

  2. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  3. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  4. 适用于 PHP 开发人员的 Python 基础知识

    Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...

  5. 线程概念( 线程的特点,进程与线程的关系, 线程和python理论知识,线程的创建)

    参考博客: https://www.cnblogs.com/xiao987334176/p/9041318.html 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运 ...

  6. python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)

    昨日内容回顾 队列 队列 : 先进先出.数据进程安全 队列实现方式: 管道 + 锁 生产者消费者模型 : 解决数据供需不平衡 管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引 ...

  7. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  8. python基础知识-12-模块的了解

    python其他知识目录 1.模块介绍: Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句.模块让你能够有逻辑地组织你 ...

  9. Python基础知识-09-函数

    python其他知识目录 1.函数介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如pr ...

随机推荐

  1. String类型的日期怎么转化为Date类型

    在一个SQL中,如果同时使用rownum和order by,会有一个先后顺序的问题. 比如select id1,id2 from t_tablename where rownum<3 order ...

  2. Java连载85-集合的Contains和Remove方法

    一.包含与删除两种方法解析 1.boolean contains(Object o);判断集合中是否包含某个元素. package com.bjpowernode.java_learning; imp ...

  3. js动画函数

    var tween = { linear: function (t, b, c, d) { return c * t / d + b; }, easeIn: function (t, b, c, d) ...

  4. setTimeout(call,0)作用

    setTimeout(call,0)作用  经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用, ...

  5. 402 WebEx会议教程二 —— 召开会议

    ··· WebEx会议教程二 —— 召开会议 简介:召开一个WebEx会议,并邮件邀请其他人参加会议 1.  安装快捷会议工具,将WebEx按钮集成到Outlook中.    WebEx快捷会议工具- ...

  6. LaTeX技巧006:使用pdfLaTeX时,添加PDF文件属性的方法

    PDF文件中含有标题.主题.作者.关键字等属性.这些属性,在Acrobat Reader或者Foxit Reader中可以通过”文件”菜单下的”属性”查看,在Acrobat Read中还可以使用Ctr ...

  7. BK: How to read a book 第四篇

    第四篇 阅读的最终目标 第二十章 阅读的第四个层次:主题阅读 在做主题阅读时的要求: 1. 知道:知道应该读哪些书. 在面对如此庞大的相关资料时,我们要如何决定我们要研究的主题是什么呢. 如何判断属于 ...

  8. es6 新增变量声明方式

    let 与 var var var声明的变量拥有全局作用域或者局部作用域 在全局中声明变量即为全局变量 在函数中声明变量即为局部变量 而var在使用过程中也逐渐暴露出许多问题 var的几大问题 变量提 ...

  9. Mvc-WebAPI特性路由(自定义路由)Demo

    Demo由VS2017编写. 1.先建一个WebApi项目 2.WebApiConfig.cs需要注册特性路由,config.MapHttpAttributeRoutes(); 3.项目默认有2个Co ...

  10. HTML /和./的区别 - Web开发

    "/"访问根目录 例1 https://www.cnblogs.com/test 里有 <a href="/Edsuns"></a> 则 ...