初识Python文件操作篇(下)

网友投稿 1141 2022-05-30

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

1

2

3

4

5

6

7

8

9

10

11

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)

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

1

2

3

4

5

6

7

8

9

'''chdir()''' ''' os.chdir() 方法用于改变当前工作目录到指定的路径。os.chdir(path) '''

1

2

3

4

'''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下取消只读 '''

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

创建目录

'''mkdir()''' ''' os.mkdir() 方法用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。 os.mkdir(path[, mode]),path -- 要创建的目录,mode -- 要为目录设置的权限数字模式 ''' '''makedirs()''' ''' os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。 os.makedirs(path, mode=0o777) '''

1

2

3

4

5

6

7

8

9

10

11

12

获取目录下的信息

'''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 --文件或目录的新名字。甚至可以是包含在目录中的文件,或者完整的目录树。 '''

1

2

3

4

5

6

7

8

9

删除目录

'''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 -- 要移除的目录路径 '''

1

2

3

4

5

6

7

8

9

10

11

其他文件操作方法

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

总结

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

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

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android Binder为什么只需要一次拷贝?
下一篇:老王私房钱之MYSQL事务及隔离级别
相关文章