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 ...
随机推荐
- laravel中redis数据库的简单使用
1.简介 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s . 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Set ...
- jQuery---固定导航栏案例
固定导航栏案例 <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...
- TensorFlow入门(常量变量及其基本运算)
1.tensorflow常量变量的定义 测试代码如下: # encoding:utf-8 # OpenCV tensorflow # 类比 语法 api 原理 # 基础数据类型 运算符 流程 字典 数 ...
- FC-NVMe阅读摘要(一)
首字母缩写 IU Information Unit BLS Basic Link Service ELS Extended Link Service PLOGI N_Port Login PRLI ...
- 2020 Plan
1. English IELTS 7.0 IELTS word 3271, 10 words diff 2 Grammar framework IELTS writing Friends foll ...
- LED Mood Light Factory-Smart Mood Light: Control System Principle
Intelligent devices have become more and more widespread in our lives. Intelligent scene lights are ...
- [ZJOI2008] 骑士 - 基环树dp
一类基环树dp都是这个套路吧 随便拆掉环上的一条边 然后跑树形dp,设\(f[i][0/1]\)表示以第\(i\)个人为根的子树,第\(i\)个人选或不选,能收获的最大值 以断点\(u,v\)为根分别 ...
- Mesh R-CNN 论文翻译(实验部分)
本文为 Mesh R-CNN 论文翻译(原理部分)的后续.Mesh R-CNN 原论文. 4 实验 我们在ShapeNet上对网格预测分支进行基准测试,并与最先进的方法相比较.然后,我们在野生的有 ...
- 二分-D - Can you solve this equation?
D - Can you solve this equation? Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you ...
- python中一些相似用法的区别:index()和find(),dict[]和get()
index和find在字符串中的区别: index()方法和find()方法相似,唯一的区别就是find方法不包含索引值会返回-1,而index()不包含索引值会抛出异常 同样的:获取字典dict ...