一文带你了解 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')

你可能感兴趣的:(python,小技巧以及经验,os,python)