OS(operating system)直接对操作系统进行操作的接口,功能真是非常强大;允许知识追寻者简要概括一下整体模块
os.open(
)方法os.path
模块fileinput
模块tempfile
模块shutil
模块知识的体系很重要,比如很多书籍文章只知如何使用OS对路径进行操作,但整体的OS是什么,包含哪些模块都没有介绍。本文的重点是对path进行操作,参和一些os常用函数,结合之前文件操作的专题可以达到很好的效果;
公众号:知识追寻者
知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)
函数名 | 函数说明 |
---|---|
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() | 创建文件夹 |
获取当前工作目录
# -*- coding: utf-8 -*-
import os
""" 获取当前工作 """
print(os.getcwd())
输出:
C:\python_work\study_py_base\base\fileopration
返回绝对路径,. 号表示当前目录
# -*- coding: utf-8 -*-
import os
""" 返回绝对路径 """
print(os.path.abspath("."))
输出:
C:\python_work\study_py_base\base\fileopration
返回基本名,基本名也就是文件的简单名称比如 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
返回共同的路径,最大长度返回;
# -*- coding: utf-8 -*-
import os
""" 返回共同的路径 """
print(os.path.commonpath(['/usr/var/lib','/usr/lib']))
返回结果:
\usr
返回路径的共同前缀。注意,前缀跟3.4节的共同路径是不同的东西;
# -*- coding: utf-8 -*-
import os
""" 返回路径共同前缀 """
print(os.path.commonprefix(['/usr/var/lib','/usr/lib']))
返回结果:
/usr/
返回目录,lib的目录是/usr/var
# -*- coding: utf-8 -*-
import os
""" 返回目录 """
print(os.path.dirname('/usr/var/lib'))
输出:
/usr/var
判定目录是否存在,存在返回True, 否则False
# -*- coding: utf-8 -*-
import os
"""判定路径是否存在"""
print(os.path.exists('/usr/var/lib'))
print(os.path.exists('C:\python_work'))
输出:
False
True
返回上一次进入路径的时间
# -*- coding: utf-8 -*-
import os
print(os.path.getatime('C:\python_work'))
输出:
1578921313.4634616
返回上一次路径修改的时间
# -*- coding: utf-8 -*-
import os
"""返回上一次路径修改的时间"""
print(os.path.getmtime('C:\python_work'))
输出:
1578921313.4634616
unix返回元数据修改时间,windows返回路径创建时间
# -*- coding: utf-8 -*-
import os
"""unix返回元数据修改时间,windows返回路径创建时间"""
print(os.path.getctime('C:\python_work'))
输出:
1577777602.8199444
返回路径的大小,单位字节;
# -*- coding: utf-8 -*-
import os
"""返回路径的大小,单位字节;"""
print(os.path.getsize('.'))
输出:
4096
判定是否是绝对路径,是返回True,否则False
# -*- coding: utf-8 -*-
import os
""" 判定是否是绝对路径"""
print(os.path.isabs('.'))
print(os.path.isabs('C:\python_work'))
输出:
False
True
判定是否是文件,是返回True,否则False
# -*- coding: utf-8 -*-
import os
""" 判定是否是文件 """
print(os.path.isfile('os_op.py'))
print(os.path.isfile('.'))
输出
True
False
判定是否是目录,是返回True,否则False
# -*- coding: utf-8 -*-
import os
print(os.path.isdir('os_op.py'))
print(os.path.isdir('.'))
输出:
False
True
是否是链接文件,是返回True,否则False, 需要被python运行时环境所支持,否则会一直返回False
# -*- coding: utf-8 -*-
import os
"""是否是链接文件"""
print(os.path.islink('os_op.py'))
路径拼接
# -*- coding: utf-8 -*-
import os
print(os.path.join('usr', 'local','bin'))
输出
usr\local\bin
windows平台路径字母全部转为小写,如果存在斜杆会转为反斜杠,其它平台不改变
# -*- coding: utf-8 -*-
import os
print(os.path.normcase('/USR/Local/bin'))
输出:
\usr\local\bin
返回与start比较后的相对路径
# -*- coding: utf-8 -*-
import os
print(os.path.relpath('C:\python_work', 'C:\\'))
输出
python_work
以基本名为基准切割路径
# -*- 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')
创建文件夹
os.makedirs('C:\mydata\generator\py')