Python中os库
一、os库
os库是Python标准库,包含几百个函数,常用路径操作、进程管理、环境参数等几类。os.path子库以path为入口,用于操作和处理文件路径。
- 路径操作:os.path子库,处理文件路径及信息
- 进程管理:启动系统中其他程序
- 环境参数:获得系统软硬件信息等环境参数
1.路径操作(os.path)
- os.path.relpath(path):返回当前程序与文件之间的相对路径
- os.path.split():由链表tail和head组成,tail就是file,head就是file之前的路径。
1 import os 2 3 path = '/home/Uesr/Desktop/file.txt' 4 5 head_tail = os.path.split(path) 6 7 print("head of '%s:'"%path,head_tail[0]) #是列表形式,【0】表示head文件路径 8 print("tail of '%s:'"%path,head_tail[1]) 9 10 11 #结果 12 head of '/home/User/Desktop/file.txt': /home/User/Desktop 13 Tail of '/home/User/Desktop/file.txt': file.txt
- os.path.join():连接两个或更多的路径名组件
1 import os 2 3 Path1 = 'home' 4 Path2 = 'develop' 5 Path3 = 'code' 6 7 Path10 = Path1 + Path2 + Path3 8 Path20 = os.path.join(Path1,Path2,Path3) 9 print ('Path10 = ',Path10) 10 print ('Path20 = ',Path20) 11 12 #结果 13 Path10 = homedevelopcode 14 Path20 = home\develop\code
- os.path.abspath(path):返回path在当前系统中的绝对路径
1 import os 2 import sys 3 file = os.path.join(os.path.split(os.path.realpath(sys.argv[0]))[0],'.','config','config.ini') 4 file1 = os.path.abspath(file) 5 print(file) 6 print(file1) 7 8 #不清楚'.'的作用 9 #输出脚本所在路径的绝对路径 10 #关于abspath()和realpath()区别,个人理解是abspath返回所在目录的路径,realpath返回的是指定文件的路径
- os.path.exists()判断括号里的文件是否存在的意思,括号内的可以是文件路径。返回布尔型
2.文件操作
- os.mkdir(path【,mode】):path为要创建的目录。mode为目录设置的数字权限
- os.listdir(path_name):将路径下所有文件存到list中
1 import os 2 path_name = 'D:/users/dir2/excel' 3 name = os.listdir(path_name) 4 print(type(name)) 5 for filename in os.listdir(path_name): 6 print(filename)
- os.stat(path):在指定路径上执行stat()系统调用。此方法用于获取指定路径的状态。path代表有效路径的字符串或字节对象,此方法返回类“ os.stat_result”的“ stat_result”对象,该对象表示指定路径的状态。返回的“ stat-result”对象具有以下属性:
- st_mode:表示文件类型和文件模式位(权限)
- st_ino:表示Unix上的inode编号和Windows平台上的文件索引
- st_dev:代表此文件所在设备的标识符
- st_nlink:表示硬链接的数量
- st_uid:代表文件所有者的用户标识符
- st_gid:代表文件所有者的组标识符
- st_size:表示文件的大小(以字节为单位)
- st_atime:表示最近访问的时间。以秒为单位
- st_mtime:表示最近一次内容修改的时间。以秒为单位
- st_ctime:表示Unix上最近的元数据更改时间以及Windows上的创建时间。以秒为单位
- st_atime_ns:与st_atime相同,但是时间以纳秒为单位表示为整数
- st_mtime_ns:与st_mtime相同,但时间以纳秒为单位表示为整数
- st_ctime_ns:与st_ctime相同,但时间以纳秒为单位表示为整数
- st_blocks:代表分配给文件的512字节块的数量
- st_rdev:表示设备类型,如果是inode设备
- st_flags:代表用户定义的文件标志
- os.fspath():返回路径的文件系统表示。返回字符串类型
1 import os 2 path_name = 'C:/Users/m00794024/Desktop/dir2/output' 3 st = os.fspath(path_name) 4 print(type(st)) 5 print(st) 6 7 #结果 8 <class 'str'> 9 C:/Users/m00794024/Desktop/dir2/output