OS库常用API讲解

简介: OS库常用API讲解

「os」库在Python中使用的特别频繁,本文主要介绍一些在平常开发中常使用的API。使用之前,记得先import一下哦。

import os

「创建文件夹」

os.mkdir('/test/a')
os.makedirs('/test/a')

区别:

os.mkdir在创建文件时,只有当上一级目录存在时,才能创建下一级文件夹。比如说,当你想创建一个test文件夹,并且要在test文件夹里面创建一个a文件夹时,你需要先创建test文件夹,然后才能创建test/a文件夹。

os.mkdir('test')
os.mkdir('test/a')

os.makedirs在创建文件时,不管上一级文件夹存不存在,都可以创建下一级文件夹。

os.makedirs('test/a')

「列出文件夹下的文件和子文件夹」

os.listdir('test')  # 列出test文件夹下所有的文件和子文件夹

「查看/修改系统的环境变量」

os.environ   # 查看所有环境变量
os.environ['A'] = '1'  # 设置环境变量A为1(程序结束后,设置的值自动失效)
os.environ['A']   # 查看环境变量A的值

「获取当前运行路径」

# /test/a.py
os.getcwd()  # /test

「获取cpu核心数」

os.cpu_count()   # 在编写多进程程序时,可能会用到

「执行cmd/shell命令」

os.system('ls')  # Linux
os.system('dir') # Windows

「路径」

os库中os.path是在日常开发中使用最频繁的功能,有些人会为了使用它直接这样引入它

from os import path as op

在这里我们使用下面的写法

import os

在开始路径之前,我们先来确定一些基本概念

path = './test/a.py'

比如上面这个路径,/是分隔符,./test是目录,a.py是文件,a是文件全名,.py是扩展名部分,最后假设该文件的绝对路径是d:/test/a.py。这样我们将一个路径拆解为以上几部分,下面,我们将对这几部分进行操作。

「获取当前操作系统的分隔符」

os.path.sep

「获取目录」

path = './test/a.py'
os.path.dirname(path)  # ./test

「获取文件全名」

path = './test/a.py'
os.path.basename(path)  # a.py

「获取文件的绝对路径」

path = './test/a.py'
os.path.abspath(path)  # d:/test/a.py

「检查文件或者文件夹是否存在」

path1 = './test/a.py'
path2 = './test'
os.path.exists(path1)
os.path.exists(path2)

「拼接路径」

root = 'test'
# bad
path = root + '/' + 'test.py'
# good
path = os.path.join(root,'test.py')  # test/test.py
path = os.path.join(root,'test1','test2','a.py')  # test/test1/test2/a.py

「切割文件全名」

filename = 'a.py'
os.path.splitext(filename)  # ('a', '.py')

「获取文件大小」

path = './test/a.py'  # 文件必须存在,否则报文件未找到的错误
size = os.path.getsize(path)  # 单位是b  size / 1024  # kb

「获取时间属性」

path = './test/a.py'  # 文件必须存在,否则报文件未找到的错误
os.path.getmtime(path)  # 获取最后一次修改时间
os.path.getatime(path)  # 获取最后一次访问时间

「判断一个路径的种类」

path = './test/a.py'  # 文件必须存在,否则报文件未找到的错误
os.path.isfile(path)  # 是否为文件
os.path.islink(path)  # 是否为链接(快捷方式)
os.path.isdir(path)  # 是否为文件夹
os.path.isabs(path)  # 是否是绝对路径
相关文章
|
29天前
|
机器人 API
随机昵称网名[百万昵称库]免费API接口教程
该API接口用于随机生成网名,适用于机器人昵称、虚拟用户名等场景。支持POST和GET请求,需提供用户ID和KEY。返回状态码及信息提示,示例如下:{"code":200,"msg":"豌豆公主"}。详情见官方文档:https://www.apihz.cn/api/zicisjwm.html
|
1月前
|
API
表情包-API盒子官方资源库版免费API接口教程
该API用于访问API盒子官方资源库中的数十万表情包,支持快速搜索。通过POST或GET请求,用户可按随机或关键词搜索表情包,返回表情包的图片地址等信息。请求需提供用户ID、KEY及搜索类型等参数。示例与详情参见官方文档。
|
1月前
|
JSON API 数据格式
随机头像图片[API盒子官方资源库]免费API接口教程
API盒子提供的头像资源接口,包含大量网络公开收集的头像,适合非商业用途。支持POST/GET请求,需提供用户ID、KEY及返回格式类型。返回数据包括状态码和消息内容,支持JSON/TXT格式。更多详情见API盒子官网。
|
1月前
|
JSON API 数据格式
随机壁纸图片[API盒子官方资源库]免费API接口教程
API盒子提供的图片资源接口,含数十万张网络公开图片(非商用)。通过POST或GET请求,需提交用户ID、KEY、返回格式及图片类型等参数。返回数据包括状态码和图片地址或错误信息。 示例ID与KEY共享调用限制,建议使用个人ID与KEY。详情见API文档。
|
2月前
|
Shell Python
Python 的 os 库的应用实例
Python 的 os 库的应用实例
39 3
|
2月前
|
存储 开发框架 .NET
.NET 8 实现无实体库表 API 部署服务
【10月更文挑战第12天】在.NET 8中,可通过以下步骤实现无实体库表的API部署:首先安装.NET 8 SDK及开发工具,并选用轻量级Web API框架如ASP.NET Core;接着创建新项目并设计API,利用内存数据结构模拟数据存储;最后配置项目设置并进行测试与部署。此方法适用于小型项目或临时解决方案,但对于大规模应用仍需考虑持久化存储以确保数据可靠性与可扩展性。
|
3月前
|
JSON 资源调度 JavaScript
Vue框架中Ajax请求的实现方式:使用axios库或fetch API
选择 `axios`还是 `fetch`取决于项目需求和个人偏好。`axios`提供了更丰富的API和更灵活的错误处理方式,适用于需要复杂请求配置的场景。而 `fetch`作为现代浏览器的原生API,使用起来更为简洁,但在旧浏览器兼容性和某些高级特性上可能略显不足。无论选择哪种方式,它们都能有效地在Vue应用中实现Ajax请求的功能。
49 4
|
4月前
|
API 数据库 索引
indexedDB 操作库IDBWRAPPER 教程翻译及API翻译第二部分part2
indexedDB 操作库IDBWRAPPER 教程翻译及API翻译第二部分part2
|
4月前
|
JSON API 网络架构
【Azure Developer】Azure REST API: 如何通过 API查看 Recovery Services Vaults(恢复保管库)的备份策略信息? 如备份中是否含有虚拟机的Disk
【Azure Developer】Azure REST API: 如何通过 API查看 Recovery Services Vaults(恢复保管库)的备份策略信息? 如备份中是否含有虚拟机的Disk
|
5月前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。