python库整理:os
Posted 刘文巾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python库整理:os相关的知识,希望对你有一定的参考价值。
1 检查路径访问权限(os.access)
os.access(path,mode)
- path -- 要用来检测是否有访问权限的路径。
- mode -- mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
- os.F_OK: 作为access()的mode参数,测试path是否存在。
- os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
- os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
- os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。
- 上述参数如果是可以,那么返回True,否则返回False
2 当前工作目录(os.getcwd)
3 改变当前工作目录到指定的路径(os.chdir)
os.chdir(path)
change direction
4 修改当前进程的根目录(os.chroot)
os.chroot(path)
修改当前进程的根目录
这一个函数需要管理员权限
5 关闭指定文件(os.close)
os.close(file)
6 返回指定的文件夹包含的文件或文件夹的名字的列表(os.listdir)
7 递归创建目录(os.makedirs)
8 创建最后一级目录(os.mkdir)
如果目录有多级,那么创建最后一级
如果最后一级目录的上一级目录是不存在的,那么抛出一个OSError
os.makedirs就可以
9 打开文件(os.open)
os.open(file,flag)
flags -- 该参数可以是以下选项,多个使用 "|" 隔开:
- os.O_RDONLY: 以只读的方式打开
- os.O_WRONLY: 以只写的方式打开
- os.O_RDWR : 以读写的方式打开
- os.O_NONBLOCK: 打开时不阻塞
- os.O_APPEND: 以追加的方式打开
- os.O_CREAT: 创建并打开一个新文件
- os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
- os.O_EXCL: 如果指定的文件存在,返回错误
- os.O_SHLOCK: 自动获取共享锁
- os.O_EXLOCK: 自动获取独立锁
- os.O_DIRECT: 消除或减少缓存效果
- os.O_FSYNC : 同步写入
- os.O_NOFOLLOW: 不追踪软链接
10 读取n个字节的file文件(os.read)
os.read(file,n)
11 移除一个文件(os.remove)
os.remove(file)
移除一个文件
如果file是一个文件夹,那么会抛出OSError
12 递归移除目录(os.removedirs)
os.removedirs(path)
13 删除目录(os.rmdir)
只有指定文件夹是空的时候,才可以删除,否则,抛出OSError
14 重命名(os.rename)
os.rename(src1,src2)
重命名文件/目录,从src1命名为src2
15 递归地重命名(os.renames)
os.renames(src1,src2)
递归地重命名目录/文件
16 执行命令(os.system)
在命令行上执行括号里面的命令
注:命令行和主程序是同步执行的。也就是说,在尚未执行完成的情况下,主程序不会继续执行下去
17 os.path
17.1 判断括号里的文件是否存在(os.path.exists)
判断括号里的文件是否存在(可以是文件路径,默认为当前路径)
17.2 返回文件的绝对路径
os.path.abspath()和os.path.realpath()
如果参数为空,那么返回当前文件所在目录的绝对路径
17.3 连接两个或更多的路径名(os.path.join)
连接两个或更多的路径名组
如果如果各组件名首字母不包括'/',那么函数会自动加上
如果有一个组件是一个绝对路径,那么在他之前的所有组件都会被舍弃
如果最后一个组件为空,那么生成的路径是一个以'/'作为分隔符结尾的路径
17.4 返回文件所在的文件夹的路径(Os.path.dirname)
必须是实际存在的py文件,如果在命令行直接,就会引发异常(__file__ is not defined)
一般常和abspath连用,效果更好
17.5 是否是目录类型(os.path.isdir)
os.path.isdir(isfile)
是否是目录类型(是否是文件类型)
17.6 是否是文件类型(os.path.isfile)
17.7 把文件名和后缀进行切分(os.path.splitext)
split ——dirname和basename分开
17.8 返回path最后的文件名(os.path.basename)
返回path最后的文件名。如果path以/或\\结尾,那么就会返回空值。
17.9 返回list(多个路径)中,所有path共有的最长的路径(os.path.commonprefix)
os.path.commonprefix(list)
17.10 文件相关时间
文件创建时间(create)
文件最近修改时间(modify)
文件最近访问时间
17.11 返回文件大小
如果文件不存在就返回错误
17.12 判断是否为绝对路径
17.13 转换path的大小写和斜杠
17.14 规范path字符串形式
17.15 计算相对路径
os.path.relpath(path[, start])
从start开始计算相对路径
17.16 判断目录或文件是否相同
os.path.samefile(path1, path2)
18 os包应用
18.1 在指定目录下查找指定后缀名的文件,要查找所有子目录,返回文件路径名列表
import os
def get_list(base_dir='',target_ext=''):
f_lst=[]
#用于记录文件名称的列表
for f_name in os.listdir(base_dir):
#检查目录里面的每个文件
path=os.path.join(base_dir,f_name)
#文件名绝对路径
if(os.path.isfile(path)):
#判断是否是文件
fname,f_ext=os.path.splitext(f_name)
#把文件名和文件后缀分开
if(f_ext==target_ext):
#如果是指定的后缀名
f_lst.append(path)
#将符合条件的文件加入列表
elif(os.path.isdir(path)):
#判断是否是文件类型
tmp_list=get_list(path,target_ext)
#递归调用查找子目录中是否有指定类型文件
f_lst.extend(tmp_list)
else:
pass
return(f_lst)
get_list(os.getcwd(),'.txt')
'''
['D:\\\\tmp\\\\1.txt', 'D:\\\\tmp\\\\2.txt', 'D:\\\\tmp\\\\output\\\\tmp\\\\result.txt']
'''
以上是关于python库整理:os的主要内容,如果未能解决你的问题,请参考以下文章