一 前言

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. 1级搭建类106-Oracle 19c 单实例 FS(华为云)公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列除特定项目目前不对外发布,仅作为博客记录,其他公开.如学员在 ...

  2. 在java中调用mockjs生成模拟数据

    一.手写版 在前端有个模拟数据的神器 Mock.js 能生成随机数据,拦截 Ajax 请求,然后我觉得他的这个生成随机数据不错.然后我就到度娘一顿操作,没找到类似的java实现,于是就有了下面的代码: ...

  3. D - Three Integers

    https://codeforces.com/contest/1311/problem/D 本题题意:给出a,b,c三个数,a<=b<=c: 可以对三个数中任意一个进行+1或-1的操作: ...

  4. P1002 过河卒【dp】

    P1002 过河卒 题目描述 棋盘上AAA点有一个过河卒,需要走到目标BBB点.卒行走的规则:可以向下.或者向右.同时在棋盘上CCC点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制 ...

  5. URLSearchParams/FormData

    一.URLSearchParams()(很好用,但有一定兼容问题,未来版本的浏览器中该功能的语法和行为可能随对应的标准文档而改变.) URLSearchParams 接口定义了一些实用的方法来处理 U ...

  6. [TJOI2009] 猜数字 - 中国剩余定理

    现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n,满足对于任意的i,n ...

  7. JavaScript函数、对象和数组

    一.JavaScript函数 1.定义函数:函数的通用语法如下 function function_name([parameter [, ...]]) { statements; } 由关键字func ...

  8. STM 32 内部功能回顾

    EXTI   外部中断 NVIC 嵌套的向量式中断控制器 AHB 是高级高性能内部总线,主要是用在CPU.DMA.DSP(数字信号处理) APB 是外围总线,I2C. 串口 APB 分为高速APB2( ...

  9. 数据从mmsql导入mysql

    SQL SERVER数据导入MYSQL 工具: navicat for mysql 百度搜一个安装就可以,前提是你已经安装了mysql 1,创建目标数据库 点击创建好的目标数据库website点的表一 ...

  10. WebRTC 之ICE浅谈

    前言 ICE全称Interactive Connectivity Establishment:交互式连通建立方式. ICE参照RFC5245建议实现,是一组基于offer/answer模式解决NAT穿 ...