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 ...
随机推荐
- thinkphp3.2短信群发项目实例
项目功能是企业给客户群发短信,我就写这么多,也不知道你能不能运行成功,如果有问题可以在QQ上问我:605114821 项目文件SMS_V2.zip下载地址,百度云:http://yun.baidu.c ...
- HTML-入门
HTML——超文本标记语言(Hyper Text Markup Language)html——W3C制定的标准超文本——除了文本,还有图片.视频.音频等丰富的元素标记(标签)——用来展示内容表型:标签 ...
- canvas转盘转动?
怎么实现类似转盘转动的效果? 现在这种实现思路是,canvas每次draw()并不是让图形在旋转,而是让每一份的颜色改变到达好像是转动的效果, 但是现在有一个问题,一开始渲染的颜色数量于份数是相同的, ...
- cssflex兼容(横向顶边对齐)
display: flex; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; ...
- JavaDay2(上)
Java learning_Day2(上) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- ansible笔记(14):循环(一)
在使用ansible的过程中,我们经常需要处理一些返回信息,而这些返回信息中,通常可能不是单独的一条返回信息,而是一个信息列表,如果我们想要循环的处理信息列表中的每一条信息,我们该怎么办呢?这样空口白 ...
- [CF1304D] Shortest and Longest LIS - 贪心
看样例,>><>><,要构造 LIS 最短的,我们需要找最小链划分的方案,即包含最少的下降列 很容易想到把连续 < 的看成一段,比如样例就是 .|.|. .| ...
- BK: Data mining, Chapter 2 - getting to know your data
Why: real-world data are typically noisy, enormous in volume, and may originate from a hodgepodge of ...
- PP: Toeplitz Inverse Covariance-Based Clustering of Multivariate Time Series Data
From: Stanford University; Jure Leskovec, citation 6w+; Problem: subsequence clustering. Challenging ...
- 安装多个jdk环境7、8、11等,并且切换默认使用版本
背景 在公司开发时,不同项目往往使用不同的jdk.目前使用最多的应该是JDK1.8,但是有些老项目使用1.7甚至1.6等 或者你想学习JDK最新版本,一些新特新如JDK11,现在最新都有JDK13 1 ...