os——python系统扩展包的介绍与使用
官方文档:https://docs.python.org/zh-cn/3/library/os.html
目录
1. 基本信息获取(操作系统,工作目录,分隔符号)
import os as os #导入包
print(os.name) #获取当前的操作系统,nt为windows,posix为linux
print(os.sep,os.extsep,os.linesep)#获取当前操作系统下的路径分隔符;文件名与文件扩展名分隔符;换行符
#运行结果为:\\ .
print(os.getcwd()) #获取当前工作目录
os.chdir(os.getcwd()) #改变当前工作目录
2. 文件、文件夹的增删改
import os as os #导入包
path=os.getcwd() #获取当前工作目录
os.mkdir(path + os.sep + 'new_dir') #在当前工作目录下创建一个名为“new_dir”的单层目录。已存在则报错。
os.rename(path + os.sep + 'new_dir',path + os.sep + 'rename_dir') #重命名目录。
a = open(path + os.sep + 'rename_dir'+ os.sep + "1.txt", "a", encoding="utf-8")
a.close()#在当前目录下创建一个名为“1.txt”的文件,文件可以已存在,a表示追加模式,编码为“utf-8”。
os.remove(path + os.sep + 'rename_dir'+ os.sep + "1.txt") #删除文件,没有则报错。
os.rmdir(path + os.sep + 'rename_dir'+ os.sep)#删除单级目录,若不为空无法删除且报错。
os.makedirs(path + '\\new_dir1\\new_dir2') #创建多层目录,已存在则报错。
os.removedirs(path + '\\new_dir1\\new_dir2')#删除多层目录,必须为空目录。
3. 判断语句(是否存在、为文件,为目录)
import os as os #导入包
path=os.getcwd() #获取当前工作目录
os.path.exists(path)#判断路径是否存在
os.path.isfile(path)#判断路径是否为文件
os.path.isdir(path)#判断路径是否为目录
os.path.isabs(parh)#判断是否为绝对路径
4.路径高级操作(路径连接分开获取)
import os as os #导入包
path=os.getcwd()
#获取当前工作目录 E:\APP\vscode\mycode>
os.listdir(path)
#获取路径下的所有文件和目录 ['.vscode', 'temp_c++.cpp', 'temp_java.java', 'temp_md.md', 'temp_python.py']
os.path.abspath('new_dir1\\new_dir2/new_dir3')
#获取绝对路径并将路径规范化 E:\APP\vscode\mycode\new_dir1\new_dir2\new_dir3
before=os.path.dirname('E:\\APP\\vscode\\mycode\\new_dir1')
#获取最后一个分隔符(\\)之前的所有字符 E:\\APP\\vscode\\mycode
after=os.path.basename('E:\\APP\\vscode\\mycode\\new_dir1')
#获取最后一个分隔符(\\)之后的字符 new_dir1
path=os.path.join(before,after)
#连接目录 E:\\APP\\vscode\\mycode\\new_dir1
os.path.split('E:\\APP\\vscode\\mycode\\new_dir1')
#以最后一个分隔符为界,返回一个包含两个字符串的元组 ('E:\\APP\\vscode\\mycode', 'new_dir1')
5. 更多细节
连接多个字符串
import os as os #导入包
print(os.path.join('E:\\','APP','vscode','mycode'))
# E:\APP\vscode\mycode
os.makedirs参数exist_ok
import os as os #导入包
os.makedirs('inputs/my/images') #不报错
#os.makedirs('inputs/my/images') #会报错
os.makedirs('inputs/my/images', exist_ok=True) #不报错
分离文件名和文件扩展名
import os as os #导入包
os.path.splitext('1.png')
#元组类型('1', '.png')