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的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

python 部分标准库笔记整理

python小知识片段

python小知识片段

python中os库用法详解(总结)

python:os模块常用方法整理