python标准库之os库

os库是python标准库中一个比较重要的库

它的主要功能有以下几点:

1.系统相关变量和操作

2.文件和目录相关操作

3.执行命令和管理进程

一、常用函数操作

1.os.name

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

import os

dlj = os.name
print(dlj)

2.os.getcwd()

得到当前工作目录

dlj = os.getcwd()
print(dlj)

3.os.listdir(path)

以列表的形式返回指定目录path下的所有文件和目录名。

import os

path = './data'  # 自己随便指定一个路径
dlj = os.listdir(path)
print(dlj)

4.os.mkdir(path)

创建新目录,path为一个字符串,表示新目录的路径。重点:这个函数只能生成下一级的目录,不能递归生成深层目录,且如果文件夹已存在,会报错。

import os

path = './wzh' 
os.mkdir(path) # 在工程路径下会生成一个文件夹,名称为wzh

5.os.makedirs(path)

可生成多层递归目录。(同os.mkdir(path)比较)

import os

path = './wzh/aaa'
os.makedirs(path) # 在工程路径下会生成wzh文件夹,再在wzh文件夹下生成aaa文件夹。如果最后一级目录存在

6.os.rmdir(path)

删除空目录,如果指定路径不是空目录则报错。

import os

path = './wzh/aaa'
os.makedirs(path)
os.rmdir('./wzh/aaa') # 删除wzh文件夹下的aaa文件夹,wzh文件夹未删除。

7.os.removedirs(path)
 

若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推

import os

path = './aaa/bbb/ccc'
os.makedirs(path)  # 递归创建目录
os.removedirs(path) # 递归删除目录

8.os.remove(path)

删除指定文件!!!(os.rmdir(path)不同,os.rmdir(path)是删除指定空文件夹,而os.remove(path)是删除指定文件)

import os

os.remove('./1.txt')  # 删除指定文件 这里删除.txt文件(文件是带有.后缀的)

9.os.sep

  1. 可以取代操作系统特定的路径分割符。
import os

path = './dlj' + os.sep + 'wzh'
print(path) # ./dlj\wzh 其中 os.sep 代替路径分割符
os.makedirs(path) # 递归生成指定路径

 10.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')

11.os.rename(path1,path2)

文件重命名。


import os

path1 = './0001.jpg'  # 已经存在的文件
path2 = './aaa.jpg'  #更改后的文件名!!!(文件名后缀要一致)
os.rename(path1, path2) # 把 path1文件 更改为 path2文件 path1文件就不存在了

12.os.curdir

返回当前路径

13.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)

14.os.chdir(path)

改变当前工作路径

import os

path = 'D:/software/anaconda3/envs/torch1.2'
print(os.getcwd()) # 返回当前脚本工作路径
os.chdir(path) # 改变当前脚本工作路径
print(os.getcwd()) 

15.os.stat(path)

获取文件/路径 的信息。

16.os.environ

获取操作系统的环境变量

17.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))

二、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)

3.os.path.getatime(path)

返回path所指向的文件或者目录的最后访问时间。

4.os.path.getmtime(path)

返回path所指向的文件或者目录的最后修改时间

5.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)

6.os.path.basename(path)

返回最后一级的文件名或目录。

import os

path = './input/detection-results'
print(os.path.basename(path))

7.os.path.dirname(path)

返回文件路径(父路径)

import os

path = ',/input/detection-results/onecode_0a1d5cfbeb04312b01c634e534b78803.txt'
print(os.path.dirname(path))

8.os.path.exists(path)

如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。

9.os.path.getsize(path)

返回文件大小,如果文件不存在就返回错误。

10.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))

11.os.path.isdir(path)

判断路径是否为目录。

12.os.path.isfile(path)

判断路径是否为文件。

13.os.path.islink(path)

判断路径是否为链接。

14.os.path.samefile(path)

判断路径是否相同。

15.os.path.split(path)

把路径分割成 dirname 和 basename,返回一个元组.

import os

path = ',/input/detection-results/onecode_0a1d5cfbeb04312b01c634e534b78803.txt'
print(os.path.split(path))

16.os.path.splitext(path)

分割路径,返回路径名和文件扩展名的元组。

17.os.path。realpath(path)

返回path的真实路径。(绝对路径)

猜你喜欢

转载自blog.csdn.net/m0_74043494/article/details/128056794