初识Python之文件操作篇(下)

在Python程序中,file对象只能对某个文件进行操作,但是我们在实际运用中,有的时候需要对文件夹的某个目录进行操作,这个时候我们就需要使用OS对象来进行操作。

OS 对象介绍

#这里列举在os模块中关于文件/目录常用的函数使用方法

#这里需要注意下,在使用这些方法前记得导入os模块
import os #导入os模块
“”"
os对象方法:
os.getcwd() #返回当前工作目录
os.chdir(path) #改变工作目录
os.listdir(path=".") #列举指定目录中的文件名("."表示当前目录,“…”表示上一级目录)
os.mkdir(path) #创建建单层目录,如果该目录已存在则抛出异常
os.makedirs(path) #递归创建多层目录,如该目录已存在抛出异常,
os.remove(path) #删除文件
os.rmdir(path) #删除单层目录,如该目录非空则抛出异常
os.removedirs(path) #递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
os.rename(old,new) #将文件old重命名为new
os.system(command) #运行系统shell命令
os.walk(top) #遍历top路径以下所有子目录,返回一个三元组:(路径,[包含目录],[包含文件])
os.curdir #属性,表示当前目录
os.pardir #属性,表示上一级目录
os.sep #属性,输出操作系统特定的路径分隔符(win下为’\’,Linux下为’/’)
os.linesep #属性,当前平台使用的行终止符(Win下为‘\r\n’,Linux下为’\n’)
os.name #属性,指待当前使用的操作系统

os.path对象方法:
os.path.basename(path) #去掉目录路径,单独返回文件名
os.path.dirname(path) #去掉文件名,单独返回目录路径
os.path.join(path1[,],path2[,…]) #将path1,path2各部分组成一个路径名
os.path.split(path) #分割文件名和路径,返回一个(f_path,f_name)元组,如果完全使用目录,它也会将最后一个目录作为文件名分离
os.path.splitext(path) #分离文件名和后缀名,返回(f_name,f_extension)元组,如果完全使用目录,它也会将最后一个目录作为文件名分离
os.path.getsize(file) #返回指定文件的尺寸,单位是字节
os.path.getatime(file) #返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getctime(file) #返回指定文件的创建时间
os.path.getmtime(file) #返回指定文件最新的修改时间
os.path.exists(path) #判断指定路径是否存在(目录或者文件)
os.path.isabs(path) #判断是否为绝对路径
os.path.isdir(path) #判断指定路径是否存在且是一个目录
os.path.isfile(path) #判断指定路径是否存在且是一个文件
os.path.islink(path) #判断指定路径是否存在且是一个符号链接
os.path.ismount(path) #判断指定路径是否存在且是一个挂载点
os.path.samefile(path1,path2) #判断path1,path2是否指向同一个文件

“”"
这是我们在操作文件的时候一些常见的方法,没有必要都去记住,我们可以在需要的时候进行查阅。详情介绍…

# -*- coding: utf-8 -*-
'''access()'''
'''python 程序中,该函数的功能是检验对当前文件的操作权限模式
格式:OS.access(文件名,mode),其中mode参数有以下四种模式
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
'''
import os,sys
ret=os.access("王小王.txt",os.F_OK)
read=os.access("王小王.txt",os.R_OK)
writer=os.access("王小王.txt",os.W_OK)
zhi=os.access("王小王.txt",os.X_OK)
print("该文件是否存在:",ret)
print("该文件是否可读:",read)
print("该文件是否可写:",writer)
print("该文件是否可执行:",zhi)

在这里插入图片描述

'''chdir()'''
'''
os.chdir() 方法用于改变当前工作目录到指定的路径。os.chdir(path)
'''
'''chmod()'''
'''
os.chmod() 方法用于更改文件或目录的权限。os.chmod(path, mode)
    path -- 文件名路径或目录路径。
    flags -- 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, ,
    执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,
    文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。
        stat.S_IXOTH: 其他用户有执行权0o001
        stat.S_IWOTH: 其他用户有写权限0o002
        stat.S_IROTH: 其他用户有读权限0o004
        stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
        stat.S_IXGRP: 组用户有执行权限0o010
        stat.S_IWGRP: 组用户有写权限0o020
        stat.S_IRGRP: 组用户有读权限0o040
        stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
        stat.S_IXUSR: 拥有者具有执行权限0o100
        stat.S_IWUSR: 拥有者具有写权限0o200
        stat.S_IRUSR: 拥有者具有读权限0o400
        stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
        stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
        stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
        stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
        stat.S_IREAD: windows下设为只读
        stat.S_IWRITE: windows下取消只读
'''

'''open()'''
'''
os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。
os.open(file, flags[, mode]);


    file -- 要打开的文件

    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: 不追踪软链接

    mode -- 类似 chmod()。

'''

创建目录

'''mkdir()'''
'''
os.mkdir() 方法用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。
os.mkdir(path[, mode]),path -- 要创建的目录,mode -- 要为目录设置的权限数字模式
'''

'''makedirs()'''
'''
os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。
os.makedirs(path, mode=0o777)
'''

获取目录下的信息

'''listdir()'''
'''
os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
它不包括 . 和 .. 即使它在文件夹中。只支持在 Unix, Windows 下使用。
os.listdir(path)
'''

修改目录

'''rename()'''
'''
os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。
os.rename(src, dst),src -- 要修改的目录名,dst -- 修改后的目录名
os.renames() 方法用于递归重命名目录或文件。类似rename()。os.renames(old, new)
old -- 要重命名的目录
new --文件或目录的新名字。甚至可以是包含在目录中的文件,或者完整的目录树。
'''

删除目录

'''rmdir()'''
'''
os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。
os.rmdir(path),path -- 要删除的目录路径
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。在Unix, Windows中有效
os.remove(path),path -- 要移除的文件路径,
os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, 
removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
os.removedirs(path),path -- 要移除的目录路径
'''

其他文件操作方法

在Python文件操作方法里面,与我们在学习Linux的基础知识有异曲同工之妙,所以融会贯通才是真理所在。其他文件操作我在这里介绍一个网址,请查阅其他系列方法

总结

文件操作这个就已经告一段落了,如果有需要资料的童鞋(爬虫入门书籍,Python进阶书籍,还有一些数据库的资料)欢迎到我主页留言。我们下期文章再会!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

满满的干货,都是小王在网络大数据的平台,细细挑选的,亲测试用,如果你不知道如何选择书籍,就快来领取福利吧!

猜你喜欢

转载自blog.csdn.net/weixin_47723732/article/details/107778445
今日推荐