python库 三: os库 基本介绍

python库 三: os库 基本介绍

os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。

1. 常见用法

  1. os.name
    输出字符串指示正在使用的平台。如果是window 则用输出’nt’,对于Linux/Unix用户,输出’posix’。
import os

dlj = os.name
print(dlj)
  1. os.getcwd()
    得到当前工作目录
dlj = os.getcwd()
print(dlj)

  1. os.listdir(path)
    以列表的形式返回指定目录path下的所有文件和目录名。
import os

path = './data'  # 自己随便指定一个路径
dlj = os.listdir(path)
print(dlj)
  1. os.mkdir(path)
    创建新目录,path为一个字符串,表示新目录的路径。重点:这个函数只能生成下一级的目录,不能递归生成深层目录,且如果文件夹已存在,会报错。
import os

path = './wzh' 
os.mkdir(path) # 在工程路径下会生成一个文件夹,名称为wzh
  1. os.makedirs(path)
    可生成多层递归目录。(同os.mkdir(path)比较)
import os

path = './wzh/aaa'
os.makedirs(path) # 在工程路径下会生成wzh文件夹,再在wzh文件夹下生成aaa文件夹。如果最后一级目录存在则报错。
  1. os.rmdir(path)
    删除空目录,如果指定路径不是空目录则报错。
import os

path = './wzh/aaa'
os.makedirs(path)
os.rmdir('./wzh/aaa') # 删除wzh文件夹下的aaa文件夹,wzh文件夹未删除。
  1. os.removedirs(path)
    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推
import os

path = './aaa/bbb/ccc'
os.makedirs(path)  # 递归创建目录
os.removedirs(path) # 递归删除目录
  1. os.remove(path)
    删除指定文件!!!(os.rmdir(path)不同,os.rmdir(path)是删除指定空文件夹,而os.remove(path)是删除指定文件)
import os

os.remove('./1.txt')  # 删除指定文件 这里删除.txt文件(文件是带有.后缀的)
  1. os.sep
    可以取代操作系统特定的路径分割符。
import os

path = './dlj' + os.sep + 'wzh'
print(path) # ./dlj\wzh 其中 os.sep 代替路径分割符
os.makedirs(path) # 递归生成指定路径
  1. os.linesep
    取代转义字符\r\n.
import os

path1 = '/dlj\r\nwzh'
path2 = '/dlj' + os.linesep + 'wzh' # os.linesep 代表转移字符 \r\n
print(path1)
print(path2)
if path1 == path2:
    print('ok')
  1. os.rename(path1,path2)
    文件重命名。
import os

path1 = './0001.jpg'  # 已经存在的文件
path2 = './aaa.jpg'  #更改后的文件名!!!(文件名后缀要一致)
os.rename(path1, path2) # 把 path1文件 更改为 path2文件 path1文件就不存在了
  1. os.curdir
    返回当前路径
  2. os.pardir
    返回当前路径的父目录,但使用时需结合os.path.abspath()
import os

print(os.curdir) # 返回'.'以表示当前路径
print(os.pardir) # 返回'..'以表示当前路径的父目录
# 这两个函数需要结合 os.path.abspath使用
aaa = os.path.abspath(os.curdir) 
bbb = os.path.abspath(os.pardir)
print(aaa)
print(bbb)
  1. os.chdir(path)
    改变当前工作路径
import os

path = 'D:/software/anaconda3/envs/torch1.2'
print(os.getcwd()) # 返回当前脚本工作路径
os.chdir(path) # 改变当前脚本工作路径
print(os.getcwd()) 
  1. os.stat(path)
    获取文件/路径 的信息。
  2. os.environ
    获取操作系统的环境变量
  3. os.walk(path)
    root : 所指的是当前正在遍历的这个文件夹的本身的地址
    dirs: 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
    files : 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
    一般结合for循环,遍历目录下的所有文件及目录。
import os

path = './result'

for root, dirs, files in os.walk(path):
    for item in dirs:
        print(os.path.join(root, item))
    for item in files:
        print(os.path.join(root, item))

2. os.path 模块

os.path模块的功能我们都可以自己使用字符串操作手动实现,该模块的作用是让我们在实现相同功能的时候不必考虑具体的系统,尤其是不需要过多关注文件系统分隔符的问题。是使用非常频繁的一个模块。

  1. os.path.abspath(path)
    返回path规范化的绝对路径. 参考上面os.pardir等用法。
  2. os.path.join(path1,path2,...)
    将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。
import os

dlj = os.path.join('./dlj', 'aaa', 'bbb')
print(dlj)
  1. os.path.getatime(path)
    返回path所指向的文件或者目录的最后访问时间。
  2. os.path.getmtime(path)
    返回path所指向的文件或者目录的最后修改时间
  3. os.path.getctime(path)
    返回path所指向的文件或者目录的创建时间
import os

path = './dlj6.py'
x = os.path.getatime(path) # 返回path所指向的文件或者目录的最后访问时间
y = os.path.getctime(path) # 返回path所指向的文件或者目录的创建时间
z = os.path.getmtime(path) # 返回path所指向的文件或者目录的最后修改时间
print(x)
print(y)
print(z)
  1. os.path.basename(path)
    返回最后一级的文件名或目录。
import os

path = './input/detection-results'
print(os.path.basename(path))
  1. os.path.dirname(path)
    返回文件路径(父路径)
import os

path = ',/input/detection-results/onecode_0a1d5cfbeb04312b01c634e534b78803.txt'
print(os.path.dirname(path))
  1. os.path.exists(path)
    如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
  2. os.path.getsize(path)
    返回文件大小,如果文件不存在就返回错误。
  3. os.path.isabs(path)
    判断是否为绝对路径。
import os

path = ',/input/detection-results/onecode_0a1d5cfbeb04312b01c634e534b78803.txt'
print(os.path.isabs(path))
path1 = os.getcwd()
path2 = os.path.join(path1, path)
print(os.path.isabs(path2))
  1. os.path.isdir(path)
    判断路径是否为目录。
  2. os.path.isfile(path)
    判断路径是否为文件。
  3. os.path.islink(path)
    判断路径是否为链接。
  4. os.path.samefile(path)
    判断路径是否相同。
  5. os.path.split(path)
    把路径分割成 dirname 和 basename,返回一个元组.
import os

path = ',/input/detection-results/onecode_0a1d5cfbeb04312b01c634e534b78803.txt'
print(os.path.split(path))
  1. os.path.splitext(path)
    分割路径,返回路径名和文件扩展名的元组。
  2. os.path。realpath(path)
    返回path的真实路径。(绝对路径)

你可能感兴趣的:(python库,python)