python专题知识追寻者对OS的理解
一 前言
OS(operating system)直接对操作系统进行操作的接口,功能真是非常强大;允许知识追寻者简要概括一下整体模块
- 如果要对文件进行读写可以使用
os.open(
)方法 - 如果要对文件路径进行操作可以使用
os.path
模块 - 如果要对所有文件的所有行读取到命令行进行操作可以使用
fileinput
模块 - 如果要创建临时文件可以使用
tempfile
模块 - 如果要对高级文件或者目录进行处理可以使用
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的理解的更多相关文章
- Python专题三字符串的基础知识
Python专题三字符串的基础知识 在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引号. ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- 适用于 PHP 开发人员的 Python 基础知识
Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...
- 线程概念( 线程的特点,进程与线程的关系, 线程和python理论知识,线程的创建)
参考博客: https://www.cnblogs.com/xiao987334176/p/9041318.html 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运 ...
- python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)
昨日内容回顾 队列 队列 : 先进先出.数据进程安全 队列实现方式: 管道 + 锁 生产者消费者模型 : 解决数据供需不平衡 管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- python基础知识-12-模块的了解
python其他知识目录 1.模块介绍: Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句.模块让你能够有逻辑地组织你 ...
- Python基础知识-09-函数
python其他知识目录 1.函数介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如pr ...
随机推荐
- String类型的日期怎么转化为Date类型
在一个SQL中,如果同时使用rownum和order by,会有一个先后顺序的问题. 比如select id1,id2 from t_tablename where rownum<3 order ...
- Java连载85-集合的Contains和Remove方法
一.包含与删除两种方法解析 1.boolean contains(Object o);判断集合中是否包含某个元素. package com.bjpowernode.java_learning; imp ...
- js动画函数
var tween = { linear: function (t, b, c, d) { return c * t / d + b; }, easeIn: function (t, b, c, d) ...
- setTimeout(call,0)作用
setTimeout(call,0)作用 经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用, ...
- 402 WebEx会议教程二 —— 召开会议
··· WebEx会议教程二 —— 召开会议 简介:召开一个WebEx会议,并邮件邀请其他人参加会议 1. 安装快捷会议工具,将WebEx按钮集成到Outlook中. WebEx快捷会议工具- ...
- LaTeX技巧006:使用pdfLaTeX时,添加PDF文件属性的方法
PDF文件中含有标题.主题.作者.关键字等属性.这些属性,在Acrobat Reader或者Foxit Reader中可以通过”文件”菜单下的”属性”查看,在Acrobat Read中还可以使用Ctr ...
- BK: How to read a book 第四篇
第四篇 阅读的最终目标 第二十章 阅读的第四个层次:主题阅读 在做主题阅读时的要求: 1. 知道:知道应该读哪些书. 在面对如此庞大的相关资料时,我们要如何决定我们要研究的主题是什么呢. 如何判断属于 ...
- es6 新增变量声明方式
let 与 var var var声明的变量拥有全局作用域或者局部作用域 在全局中声明变量即为全局变量 在函数中声明变量即为局部变量 而var在使用过程中也逐渐暴露出许多问题 var的几大问题 变量提 ...
- Mvc-WebAPI特性路由(自定义路由)Demo
Demo由VS2017编写. 1.先建一个WebApi项目 2.WebApiConfig.cs需要注册特性路由,config.MapHttpAttributeRoutes(); 3.项目默认有2个Co ...
- HTML /和./的区别 - Web开发
"/"访问根目录 例1 https://www.cnblogs.com/test 里有 <a href="/Edsuns"></a> 则 ...