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

简介: 初识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)

image.png

'''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)

'''


1

2

3

4

5

6

7

修改目录


'''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进阶书籍,还有一些数据库的资料)欢迎到我主页留言。我们下期文章再会!

image.png

image.png


image.png


image.png


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


相关文章
|
3月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
6月前
|
监控 Java 数据处理
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【7月更文挑战第31天】在 Python 系统编程中, 文件操作与 I/O 管理至关重要。
66 2
|
3月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
7月前
|
开发者 Python
Python基础第七篇(Python的文件操作)
Python基础第七篇(Python的文件操作)
|
7月前
|
存储 安全 开发者
文件操作?Python让你轻松搞定!
【6月更文挑战第12天】Python编程中的文件操作至关重要,涉及数据存储和系统交互。通过内置的`open()`函数,开发者可轻松处理文件。以只读模式`'r'`为例,使用`with`语句打开并读取文件内容;写入文件则用`'w'`或`'a'`模式。文件对象还支持高级功能,如文件指针移动,允许随机访问。掌握这些技能能提升开发效率。
41 0
|
4月前
|
存储 Python
Python文件操作
Python文件操作
|
4月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
35 1
|
4月前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
52 6
|
5月前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
40 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
|
3月前
|
Java 程序员 Python
【Python】文件操作
【Python】文件操作
26 0