常用模块之os模块
1697 字
8 分钟
常用模块之os模块
【一】文件操作(os)
- __file__是指当前文件
【二】文件路径相关(path)
(1)获取当前文件路径(abspath)
import os
# 获取当前文件路径file_path = os.path.abspath(__file__)print(file_path)# E:\PythonProjects\07常用模块学习\03os模块.py(2)获取当前文件所在文件夹路径(dirname)
import os
# 获取当前文件所在文件夹路径file_path = os.path.dirname(__file__)print(file_path)# E:\PythonProjects\07常用模块学习(3)判断当前路径是否存在(exists)
import os
# 指定一个文件路径 (r表示转义符,会将 \ 转换为 \\ )file_path_one = r'E:\PythonProjects\07常用模块学习'is_true_one = os.path.exists(file_path_one)print(is_true_one)# True
# 指定一个不存在文件路径file_path_two = r'E:\PythonProjects\07常用模块学习\img'is_true_two = os.path.exists(file_path_two)print(is_true_two)# False(4)拼接文件路径(join)
import os
BASE_DIR = os.path.dirname(__file__)print(BASE_DIR)# E:\PythonProjects\07常用模块学习
file_name = 'img'# join 后面可以跟多个路径file_path = os.path.join(BASE_DIR, file_name)print(file_path)# E:\PythonProjects\07常用模块学习\img(5)切割路径(split)
import os
# 获取当前文件所在路径BASE_DIR = os.path.abspath(__file__)# 对路径进行切割 --- 切割成元组file_path_list = os.path.split(BASE_DIR)print(file_path_list)# ('E:\\PythonProjects\\07常用模块学习', '03os模块.py')(6)获取结尾文件/文件夹名(basename)
import os
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.join(BASE_DIR, 'img')print(file_path)
# 返回path最后的文件名# 如何 path以/或\结尾,那么就会返回空值。# 即 os.path.split(path) 的第二个元素is_true = os.path.basename(file_path)print(is_true)# img
file_path_one = os.path.abspath(__file__)print(file_path_one)# E:\PythonProjects\07常用模块学习\03os模块.py
print(os.path.basename(file_path_one))# 03os模块.py(7)当前路径是否是文件(isfile)
import os
BASE_DIR = os.path.dirname(__file__)print(BASE_DIR)# E:\PythonProjects\07常用模块学习
file_path = os.path.abspath(__file__)print(file_path)# E:\PythonProjects\07常用模块学习\03os模块.py
is_true_one = os.path.isfile(BASE_DIR)print(is_true_one)# False
is_true_two = os.path.isfile(file_path)print(is_true_two)# True(8)当前路径是否为绝对路径(isabs)
import os
file_path_one = r'E:\PythonProjects\07常用模块学习'file_path_two = r'../07常用模块学习'
is_true_one = os.path.isabs(file_path_one)print(is_true_one)# True
is_true_two = os.path.isabs(file_path_two)print(is_true_two)# False(9)当前文件目录是否存在
import os
file_path_one = r'E:\PythonProjects\07常用模块学习'file_path_two = r'../07常用模块学习'
is_true_one = os.path.isdir(file_path_one)print(is_true_one)# True
is_true_two = os.path.isdir(file_path_two)print(is_true_two)# True(10)获取当前文件或目录的最后访问时间(getatime)
import os, time
BASE_DIR = os.path.dirname(__file__)file_path = os.path.abspath(__file__)
file_base_time = os.path.getatime(BASE_DIR)print(file_base_time) # 1700898377.9336035print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_base_time)))# 2023-11-25 15-46-17
file_time = os.path.getatime(file_path)print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_time)))# 2023-11-25 15-46-17(11)获取当前文件或者目录的创建时间(getctime)
import os, time
BASE_DIR = os.path.dirname(__file__)file_path = os.path.abspath(__file__)
file_base_time = os.path.getctime(BASE_DIR)print(file_base_time) # 1700831862.5625432print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_base_time)))# 2023-11-24 21-17-42
file_time = os.path.getctime(file_path)print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_time)))# 2023-11-25 14-41-54(12)返回当前文件或路径的最后修改时间(getmtime)
import os, time
BASE_DIR = os.path.dirname(__file__)file_path = os.path.abspath(__file__)
file_base_time = os.path.getmtime(BASE_DIR)print(file_base_time) # 1700831862.5625432print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_base_time)))# 2023-11-25 15-50-19
file_time = os.path.getmtime(file_path)print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_time)))# 2023-11-25 15-50-19(13)返回当前文件的大小(getsize)
import os
BASE_DIR = os.path.dirname(__file__)file_path = os.path.abspath(__file__)
file_base_time = os.path.getsize(BASE_DIR)print(file_base_time) # 0
file_time = os.path.getsize(file_path)print(file_time) # 4969【三】路径操作(os)
(1)创建单级文件夹(mkdir)
import os
BASE_DIR = os.path.dirname(__file__)print(BASE_DIR)# E:\PythonProjects\07常用模块学习
file_name = 'img'file_path = os.path.join(BASE_DIR, file_name)print(file_path)# E:\PythonProjects\07常用模块学习\img
# 判断当前是否存在 file_path 指定路径if not os.path.exists(file_path): # 不存在则新建 路径 (只能创建文件夹) os.mkdir(file_path) print(f"{file_path} :>>> 已创建")
print(f"当前路径 :>>>> {os.path.exists(file_path)}")# E:\PythonProjects\07常用模块学习\img :>>> 已创建# 当前路径 :>>>> True- 只能创建单级文件目录,多级就会报错
import os
BASE_DIR = os.path.dirname(__file__)print(BASE_DIR)# E:\PythonProjects\07常用模块学习
file_name = 'img'file_name_one = 'Asia'file_path = os.path.join(BASE_DIR, file_name,file_name_one)print(file_path)# E:\PythonProjects\07常用模块学习\img\Asia
if not os.path.exists(file_path): os.mkdir(file_path) print(f"{file_path} :>>> 已创建")
print(f"当前路径 :>>>> {os.path.exists(file_path)}")
'''Traceback (most recent call last): File "E:\PythonProjects\07常用模块学习\03os模块.py", line 20, in <module> os.mkdir(file_path)FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'E:\\PythonProjects\\07常用模块学习\\img\\Asia''''(2)创建多级文件夹(makedirs)
import os
BASE_DIR = os.path.dirname(__file__)print(BASE_DIR)# E:\PythonProjects\07常用模块学习
file_name = 'img'file_name_one = 'Asia'file_path = os.path.join(BASE_DIR, file_name,file_name_one)print(file_path)# E:\PythonProjects\07常用模块学习\img\Asia
if not os.path.exists(file_path): # 多级文件夹创建使用 makedirs os.makedirs(file_path) print(f"{file_path} :>>> 已创建")
print(f"当前路径 :>>>> {os.path.exists(file_path)}")# E:\PythonProjects\07常用模块学习\img\Asia :>>> 已创建# 当前路径 :>>>> True(3)删除多级文件夹()
import os
BASE_DIR = os.path.dirname(__file__)
file_name = 'img'file_path = os.path.join(file_name, 'Asia')print(file_path)# img\Asia
file_true_path = os.path.join(BASE_DIR, file_path)print(os.path.exists(file_true_path))# True
os.removedirs(file_path)
print(os.path.exists(file_true_path))# False- 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
(4)删除单级文件夹(rmdir)
- 删除单级空目录,若目录不为空则无法删除,报错
import os
BASE_DIR = os.path.dirname(__file__)
file_name = 'img'file_path = os.path.join(file_name, 'Asia')print(file_path)# img\Asia
file_true_path = os.path.join(BASE_DIR, file_path)print(os.path.exists(file_true_path))# True
# 如果文件路径存在会从最后开始删,只删一级os.rmdir(file_path)
print(os.path.exists(file_true_path))# False(5)列出当前文件夹下的所有文件及文件夹(listdir)
import os
BASE_DIR = os.path.dirname(__file__)file_list = os.listdir(BASE_DIR)print(file_list)# ['01正则模块.py', '02时间模块.py', '03os模块.py', 'img'](6)删除指定文件(remove)
import os
BASE_DIR = os.path.dirname(__file__)
file_list_one = os.listdir(BASE_DIR)print(file_list_one)# ['01正则模块.py', '02时间模块.py', '03os模块.py', 'img', 'test.py']
file_path = os.path.join(BASE_DIR, 'test.py')os.remove(file_path)
file_list_two = os.listdir(BASE_DIR)print(file_list_two)# ['01正则模块.py', '02时间模块.py', '03os模块.py', 'img'](7)重命名文件夹/文件(rename)
import os
BASE_DIR = os.path.dirname(__file__)
file_list_one = os.listdir(BASE_DIR)print(file_list_one)# ['01正则模块.py', '02时间模块.py', '03os模块.py', 'img', 'test.py']
file_path = os.path.join(BASE_DIR, 'test.py')img_file_path = os.path.join(BASE_DIR, 'img')os.rename(file_path, 'my_test.py')os.rename(img_file_path, 'my_img')
file_list_two = os.listdir(BASE_DIR)print(file_list_two)# ['01正则模块.py', '02时间模块.py', '03os模块.py', 'my_img', 'my_test.py'](8)获取文件夹/文件详细信息(stat)
import os
BASE_DIR = os.path.dirname(__file__)file_path = os.path.abspath(__file__)
file_base_stat = os.stat(BASE_DIR)print(file_base_stat)# os.stat_result(st_mode=16895, st_ino=16044073674306378, st_dev=2321476820, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1700900090, st_mtime=1700900090, st_ctime=1700831862)
file_stat = os.stat(file_path)print(file_stat)# os.stat_result(st_mode=33206, st_ino=531143281053175299, st_dev=2321476820, st_nlink=1, st_uid=0, st_gid=0, st_size=7580, st_atime=1700900090, st_mtime=1700900090, st_ctime=1700894514)stat 结构:
st_mode: inode 保护模式st_ino: inode 节点号。st_dev: inode 驻留的设备。st_nlink: inode 的链接数。st_uid: 所有者的用户ID。st_gid: 所有者的组ID。st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。st_atime: 上次访问的时间。st_mtime: 最后一次修改的时间。st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。(9)获取当前工作目录(getcwd)
import os
# 获取当前工作目录,即当前python脚本工作的目录路径file_path = os.getcwd()print(file_path)# E:\PythonProjects\07常用模块学习(10)改变当前工作目录(chdir)
import os
BASE_DIR = os.path.dirname(__file__)
# 获取当前工作目录,即当前python脚本工作的目录路径file_path = os.getcwd()print(file_path)# E:\PythonProjects\07常用模块学习
img_file_path = os.path.join(BASE_DIR, 'img')os.chdir(img_file_path)
file_path_new = os.getcwd()print(file_path_new)# E:\PythonProjects\07常用模块学习\img(11)运行shell命令
[1]直接显示
import os
os.system("ping www.baidu.com")[2]获取执行结果
import os
res = os.popen("ping www.baidu.com")print(res)【四】属性操作(os)
(1)输出操作系统特定的路径分隔符(sep)
import os
print(os.sep)# \- win下为 ""
- Linux下为 ”/”
(2)输出当前平台使用的行终止符(linesep)
import os
print(os.linesep)- win下为 “\r\n”
- Linux下为 “\n”
(3)输出用于分割文件路径的字符串(pathsep)
import os
print(os.pathsep)# ;- win下为 ”;”
- Linux下为 ”:”
(4)输出字符串指示当前使用平台(name)
import os
print(os.name)# nt- win下为 ‘nt’
- Linux下为 ‘posix’
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
C 语言发展史
编程语言了解 C 语言从 BCPL、B 语言到现代标准 C 的发展历程、核心特点与应用领域。
2
C 语言开发环境的安装与配置
编程语言在 Windows、Linux 与 macOS 上安装 C 工具链,配置编辑器,并编译运行第一个 C 程序。
3
C 语言初识:程序运行机制与基本结构
编程语言认识 C 程序从源代码到运行的完整流程,以及基础语法和程序的基本结构。
4
C 语言基础:注释、关键字、变量与数据类型
编程语言学习 C 语言的注释、关键字、标识符、常量、变量和基本数据类型等基础知识。
5
C 语言数据类型
编程语言理解 C 语言的数据类型体系,包括基本类型、整数类型、浮点类型和逻辑类型。
随机文章随机推荐














