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 ...
随机推荐
- C++ lambda函数及其用法(转)
由于接触C++不久,很多东西比较陌生,今天看阿里云OSS的C++ SDK文件下载部分例子,发现有如下lambda表达式用法,故了解一下相关知识 /*获取文件到本地文件*/ GetObjectReque ...
- jQuery---美女相册案例
美女相册案例 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...
- 如何通过给MM修电脑培养感情
文章来自网络 在修之前,向MM反复声明,这电脑故障是有硬件和软件之分的,如果是硬件故障,例如显卡风扇不转了,显示器连线老化,显示器分辨率超出显示器指标,等等都会导致黑屏啊,这个我不回家用专门的工具是修 ...
- 一起学Vue之列表渲染
在Vue开发中,列表数据绑定非常简单易用,本文主要通过一些简单的小例子,讲述v-for的使用方法,仅供学习分享使用,如有不足之处,还请指正. 用 v-for 把一个数组对应为一组元素 我们可以用 v- ...
- 【算法学习记录-排序题】【PAT A1025】PAT Ranking
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...
- 手机内存卡RAW无法格式化的解决办法
突然出现这个问题,这是麻烦: 网上找了各种办法:什么软件修复,disk等修复,创建新磁盘,新扇到,win自动修复啊:开始----运行框中输入 :convert X: /fs:FAT(X为电脑 ...
- [bzoj1905] [ZJOI2007] Hide 捉迷藏
题意简述 给定一棵 \(n\) 个点的树,起初每个点都为黑色. 2种操作,要么改变某个点的颜色(由黑至白或由白至黑),要么询问距离最远的两个黑点间的距离. 共 \(m\) 次操作. \(n\leq 1 ...
- 苹果cms10 官方QQ微信防红防封代码
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- s 贪心
区间问题: 区间选点问题 右端点排序,now标记点. 数轴上有N个闭区间[Ai, Bi].取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个). 输入 第1行:一个整数N(1 ...
- 简述python(threading)多线程
一.概述 import threading 调用 t1 = threading.Thread(target=function , args=(,)) Thread类的实例方法 # join():在子线 ...