一文带你了解 Python 中 os 库操作
Python 一文带你使用 os 库 解决基本文件操作
之前使用os.walk os.path 等函数 来解决了文档树,统计文件类型的操作,觉得很有比较整理一下os库 中那些比较简单的函数,希望对大家有用,之后还会添加
os.getcwd
os.getcwd()
返回当前工作目录
import os
# 'C:\\Users\\29273'
os.getcwd()
os.listdir
os.listdir(path)
返回指定路径下的文件和文件夹列表,缺省默认为当前文件路径
import os
# ['.7d9b55297a162003a6d46e85fb151995daed6138',
# '.anaconda',
# '.android',
# '.astropy
os.listdir()
os.chdir
os.chdir(path)
改变当前工作目录到指定的路径
import os
os.getcwd() # 'C:\\Users\\29273'
path = r'C:\Users\29273\Desktop'
os.chdir(path)
os.getcwd() # 'C:\\Users\\29273\\Desktop'
os.open
os.open(file, flags[, mode]);
用于打开一个文件,并且设置需要的打开选项
flag 选项
| 形式 | 描述 |
|---|---|
| os.O_RDONLY | 以只读的方式打开 |
| os.O_WRONLY | 以只写的方式打开 |
| os.O_RDWR | 以读写的方式打开 |
| os.O_APPEND | 以追加的方式打开 |
| os.O_CREAT: | 创建并打开一个新文件 |
| os.O_EXCL | 如果指定的文件存在,返回错误 |
import os
txt = os.open('基本功能.txt',os.O_RDONLY)
res = os.read(txt,100)
# b'\xe7\x99\xbb\xe5\xbd\x95\xe6'
# 新建一个文件进行添加
txt = os.open('data.txt',os.O_RDWR|os.O_CREAT)
dataString = '这是一个要被添加的字符串'
os.write(txt,str.encode(dataString))
os.mkdir
os.mkdir(path[, mode])
如果目录有多级,则创建最后一级,如果最后一级目录的上级目录有不存在的,则会抛出一个 OSError
os.makedirs(path)
方法用于递归创建目录,如果子目录创建失败或者已经存在,会抛出一个 OSError 的异常
如果第一个参数 path 只有一级,则 mkdir() 函数相同
import os
path1 = os.getcwd() + '\honor' # 创建成功
path2 = os.getcwd() + '\moon\honor' # 创建失败
try:
os.mkdir(path1)
print('创建失败')
except:
print('创建失败')
path = os.getcwd() + 'first\second'
os.makedirs(path)
os.pardir
os.pardir
获取当前目录的父目录(上一级目录),Windows 默认返回…
import os
os.pardir # '..'
os.name
os.name
返回本机的操作系统类型 posix 是linux操作系统,nt 为 Windows 操作系统
os.environ
os.environ
返回主机的系统变量
os.path.basename 与 os.path.dirname
os.path.dirname 获取文件中的文件名称
os.path.basename 获取路径中的文件父级目录
import os
path1 = os.getcwd() + '\honor'
path2 = os.getcwd() + '\honor.jpg'
os.path.basename(path2) # honor.jpg
os.path.dirname(path1) # C:\Users\29273\Desktop
os.rename
os.rename(oldname, newname)
命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError
os.mknod 与 os.remove
os.mknod(name) 一般用于创建一个新的文件
os.remove(name) 删除文件
os.path.isabs
os.path.isabs(path) 判断路径是否为绝对路径
import os
path1 = os.getcwd()
path2 = './hello'
os.path.isabs(path1) # True
os.path.isabs(path2) # False
os.path.abspath
os.path.abspath(path)
生成绝对路径
import os
path = './hello'
os.path.abspath(path) # 'C:\\Users\\29273\\Desktop\\hello'
os.path.splitext
os.path.splitext(filename)
分离后缀名和文件名
import os
filename = 'matlab.m'
os.path.splitext(filename)
# ('matlab', '.m')
os.path.split
os.path.split(path)
将目录名和文件名分离
import os
path = os.getcwd() + '\matlab.m'
os.path.split(path)
# ('C:\\Users\\29273\\Desktop', 'matlab.m')

浙公网安备 33010602011771号