【python】OS(文件管理)模块(库)
OS库是python的标准库之一,他提供了一系列与操作系统进行交互的功能。通过这个库,我们可以对本地的目录以及文件进行管理。
前言
作为python中的标准库,OS主要提供了与操作系统相关的操作,如文件和目录管理、进程管理、环境变量处理等。通过这个库,我们可以对文件以及目录进行批量的管理。
目录
前言
正文
一、导入
二、文件以及目录操作(常用)
1、返回当前操作系统的名称
2、获得当前工作目录
3、改变当前工作目录到指定路径
*4、返回指定路径中的文件和子目录列表
*5、创建目录(文件夹)
*6、删除目录(文件夹)
*7、重命名(或者移动)文件或目录
9、获取指定路径的状态信息
三、路径操作
*1、连接路径
2、返回指定路径的目录名或者文件名(路径中的最后一个组件的名称)
3、返回路径中最后一个组件之前的部分
4、检查指定路径是否存在(无论是文件还是目录)
*5、检查指定路径是否是一个文件
*6、检查指定路径是否是一个目录(文件夹)
7、将路径分为两部分,目录和文件名
8、分离文件名与扩展名
*9、返回给定路径的绝对路径
四、环境变量
五、执行系统命令
总结
正文
一、导入
作为python中的标准库是不需要通过pip去下载的可以直接导入使用:
# 直接导入即可
import os
二、文件以及目录操作(常用)
1、返回当前操作系统的名称
import os
print(os.name)
# 返回posix(通常指代类 Unix 操作系统,如 Linux 和 macOS,这些系统遵循 POSIX 标准),
# nt(代表 Windows NT 系列操作系统)等
2、获得当前工作目录
import os
print(os.getcwd()) # 输出当前工作目录的路径
3、改变当前工作目录到指定路径
import os
os.chdir('/python/os')
*4、返回指定路径中的文件和子目录列表
import os
print(os.listdir('/path/to/directory')) # 返回该目录中的文件和子目录名称
*5、创建目录(文件夹)
os.mkdir('路径/目录名')
# 如果路径中的文件夹不存在,会直接报错
该函数只能在已有的路径下新建一级路径,否则(即新建多级路径)会抛出FileNotFoundError异常。
在需要新建多级路径的场景下,可以使用makedirs(递归创建目录)来完成任务
os.makedirs('路劲/文件夹名')
# 如果路劲中的文件夹不存在则会直接创建该文件夹
*6、删除目录(文件夹)
注意需要删除的目录必须为空目录,即该目录中不含文件或其他目录
os.rmdir('需要删除的目录') # 删除指定的目录
如果遇到想要删除的多级目录时可以使用removedirs(递归删除目录)函数,该函数会尝试从最下级目录开始,逐级删除指定的路径,几乎就是一个os.makedirs()的逆过程;一旦遇到非空目录即停止。
os.removedirs('sss/AldealRaysTrialEarly_Ver0.7/AldealRaysTrialEarly_Ver0.7/AldealRaysTrialEarly_Data') # 路径将会从最后一个开始删除,知道遇见非空目录
*7、重命名(或者移动)文件或目录
语法:os.rename(src,dst) 给文件(或目录)重命名
src:需要更改的路径和文件名,dst:更改后的路径和文件名
os.rename('/path/python', '/path/python_module') # 重命名,即不改变路劲,只改变变量名
os.rename('/path/python', '/path_new/python') # 移动,即只改变路劲
注意:使用该函数时dst的路劲和文件名都可以根据自己的需要随意修改
*8、删除文件
直接指定文件路劲即可
os.remove('文件路劲')
9、获取指定路径的状态信息
# print(os.stat('文件或目录路径'))
print(os.stat('miku')) # miku是我本地的一个文件夹
该函数会返回一大串的文件转台信息,下面是我这个文件的信息,不同的文件返回的值不一样,以下仅供参考。
os.stat_result(st_mode=16895, st_ino=1125899907079300, st_dev=147090170, st_nlink=1, st_uid=0, st_gid=0, st_size=49152, st_atime=1724571299, st_mtime=1723189468, st_ctime=1681979518)
其中
st_mode
: 文件类型和权限(16895是八进制的形式,通常用于表示文件类型和权限)。st_ino
: 文件的索引节点号。st_dev
: 文件所在设备的ID。st_nlink
: 硬链接数,即指向此文件的硬链接数量。st_uid
: 文件所有者的用户ID。st_gid
: 文件所属组的ID。st_size
: 文件大小(以字节为单位)。st_atime
: 最近访问时间(时间戳形式)。st_mtime
: 最近修改时间(时间戳形式)。st_ctime
: 文件元数据的改变时间(时间戳形式)。
注: 一般情况这些数据用不上,可以忽略该函数。
三、路径操作
*1、连接路径
常用于路径的拼接
path = os.path.join('folder', 'subfolder', 'file.txt')
print(path) # 输出: folder\subfolder\file.txt
2、返回指定路径的目录名或者文件名(路径中的最后一个组件的名称)
常用于获取文件名
filename = os.path.basename('/path/to/file.txt')
print(filename) # 输出: file.txt
filename = os.path.basename('/path/to')
print(filename) # 输出: to
3、返回路径中最后一个组件之前的部分
常用于获取路径
dirname = os.path.dirname('/path/to/file.txt')
print(dirname) # 输出: /path/to
4、检查指定路径是否存在(无论是文件还是目录)
常用于判断目录或文件是否存在
exists = os.path.exists('3.txt')
print(exists) # 文件3.txt存在则返回True,否则返回False
exists = os.path.exists('/path/to/python')
print(exists) # 目录python存在返回True,否则返回False
*5、检查指定路径是否是一个文件
功能和4差不多,不过只能判断文件是否存在
is_file = os.path.isfile('/path/to/file.txt')
print(is_file) # 输出: True 或 False
*6、检查指定路径是否是一个目录(文件夹)
功能和4差不多,不过只能判断目录是否存在
is_directory = os.path.isdir('/path/to/directory')
print(is_directory) # 输出: True 或 False
7、将路径分为两部分,目录和文件名
path = '/path/to/file.txt'
directory, filename = os.path.split(path)
print(directory) # 输出: /path/to
print(filename) # 输出: file.txt
8、分离文件名与扩展名
注意如果给的路径不只有文件名,则会将路径与拓展名分开
filename, extension = os.path.splitext('file.txt')
print(filename) # 输出: file
print(extension) # 输出: .txt
filename, extension = os.path.splitext('to/file.txt')
print(filename) # 输出: to/file
print(extension) # 输出: .txt
*9、返回给定路径的绝对路径
absolute_path = os.path.abspath('file.txt')
print(absolute_path) # 输出: 当前工作目录下file.txt的绝对路径
四、环境变量
环境变量是操作系统中用于存储系统和用户信息的动态命名值。它们可以影响运行在操作系统中的进程的行为,包含了系统设定、程序路径、用户信息等内容。常见的环境变量包括:
- PATH:指定可执行文件的搜索路径。
- HOME:用户的主目录路径。
- TEMP:临时文件存放目录。
环境变量通常在系统启动时设置,可以通过命令行或系统设置进行查看和修改。
获取环境变量
pycharm = os.environ.get('PyCharm') # 获取环境变量
print(pycharm) # D:\app\PyCharm 2020.2.5\bin; 输出本地pycahrm的bin路径,具体更具输出结果而定
设置环境变量
# 设置环境变量
os.environ['MY_VAR'] = '写代码也摆烂'
my_var = os.environ.get('MY_VAR') # 获取环境变量
print(my_var)
五、执行系统命令
os.system(系统命令)
os.system('ls -l')
windown关机:shutdown /s /t 600 # 10分钟后关机
windown重启:shutdown /r /t 600 # 10分钟后重启
总结
在编程中涉及到文件和目录相关的操作时,os模块还是很实用的。
欢迎指正!