一 前言

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. C#常规TcpListener

    1.Xaml <Window x:Class="Server.MainWindow" xmlns="http://schemas.microsoft.com/win ...

  2. 二叉堆(3)SkewHeap

    斜堆. 测试文件 main.cpp: #include <iostream> #include "SkewHeap.h" using std::cout; using ...

  3. gulp 对js\css进行md5 加密

    有的服务器为了网站加载速度,会做服务器缓存,这样就会出现代码出现引用地址没变,新代码不生效,而我们又希望新代码可以及时生效,这样我们就需要避免缓存,当然也有很多方法,本文只介绍使用gulp-rev(对 ...

  4. new Vue发生了什么(五)

    从入口代码开始分析,我们先来分析 new Vue 背后发生了哪些事情.我们都知道,new 关键字在 Javascript 语言中代表实例化是一个对象,而 Vue 实际上是一个类,类在 Javascri ...

  5. IDEA构建maven项目生成的文件详解

    IDEA构建的maven+springBoot项目结构如下: 1. .gitignore:分布式版本控制系统git的配置文件,意思为忽略提交 在 .gitingore 文件中,遵循相应的语法,即在每一 ...

  6. LVS笔试题!

    1.集群分类有哪些及各自实现的目标?高可用:保持系统的稳定,防止系统出现单点故障.负载均衡:比如高并发状态下,多个机器分摊请求,从而达到负载均衡高性能运算集群:比如hadoop分布式计算框架,把多个机 ...

  7. go语言 实现哈希算法

    验证结果网址 http://www.fileformat.info/tool/hash.htm "golang.org/x/crypto/md4"不存在时,解决方法: cd $GO ...

  8. CentOS7.0安装EMQ代理服务

    CentOS7.0安装EMQ代理服务 安装文件下载 官网 : https://www.emqx.io/cn/ 下载地址: https://www.emqx.io/cn/downloads 选择需要的版 ...

  9. soundtouch change rate matlab implementation

    soundtouch implement of changing rate in a way same with resample(SRC). When rate < 1, it need in ...

  10. linux下部署Mono oracle配置,oracle客户端安装

    一.Mono,apache安装,配置网站(以 centos 7 +apache 2为例): 安装教程以官网的教程为追,百度来的多少有版本问题. mono官网连接: 1. Mono的安装:https:/ ...