在Python中对文件和目录进行操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中对文件和目录进行操作相关的知识,希望对你有一定的参考价值。

文件与目录操作是编程语言中非常重要的功能,Python也对其提供了相应的API支持,这篇博文就是具体介绍它们的使用方法。

一、文件打开和关闭操作

对文件进行操作在Python中分为3个步骤,首先要打开文件,然后是对文件进行读写操作,最后需要关闭文件。

1、打开文件使用的是open()函数,它提供初始化输入、输出(I/O)操作的通用接口,成功打开文件后返回一个文件对象,打开失败则引发一个错误。打开文件的语法如下:

file_object = open(file_name,access_mode [,buffering] )

file_name是要打开的文件名,可以是文件的绝对路径或相对路径。绝对路径是文件在硬盘上真正存在的路径,如:c:pythonsrc是绝对路径。相对路径是相对于当前运行程序所在路径的目标文件位置,表示相对路径时,“.”表示当前位置;“..”表示当前位置的上一级。如“..images”或“.DB”是相对路径,使用相对路径的好处是,当程序迁移时,由于绝对路径与本地计算机关联紧密,程序运行可能会出错,所以通常使用相对路径。

access_mode表示文件打开的模式,常用的模式如下:

技术图片

r表示的是对文件进行读取操作,w表示写入数据到文件中,a是追加数据到文件的末尾,b是标识文件为二进制文件,与rwa组合使用,如打开音视频等二进制文件需要使用b模式,不指定模式时默认是r模式。

buffering表示访问文件采用的缓冲方式。0表示不缓冲,1表示只缓冲1行,任何大于1的值表示按给定值作为缓冲大小,不提供该参数或给定负值表示使用系统默认缓冲机制。

(2)对文件进行读写等操作后需要关闭文件,目的是释放文件占用的资源,使用的是file.close()方法,file表示的是已打开的文件对象。如果不显式的关闭文件,Python的垃圾收集机制也会在文件对象的引用计数为0时自动关闭文件,但是可能会丢失输出缓冲区的数据。如果不及时关闭已经打开的文件,该文件的资源会被占用,将无法对该文件执行其他操作,如删除文件的操作。所以要养成良好的习惯,在完成文件操作后,要及时关闭文件,释放资源。

(3)打开和关闭文件的示例代码如下:

fp = open(‘e:/readme.txt‘,‘w‘)       #绝对路径写文件
fp.close()           #关闭文件

fp = open(‘./readme.txt‘,‘r‘)          #相对路径,读文件
fp.close()

第一个是使用绝对路径,“w”表示对文件进行读写操作,如果文件不存在则会创建一个空文件。第二个是使用相对路径,在当前Python文件的目录下查找,“r”表示读取,如果找不到则会出错,找到则会读取文件。

(4)常用的文件对象内建方法

文件对象的操作方法有很对,常用的方法总结如下:
技术图片

(5)目录操作

1)可以使用getcwd()函数获取当前路径。

#代码如下:
import os
print os.getcwd()
#执行结果如下:
C:UsersAdministratorDesktop          #因为我Python的程序在桌面,所以显示的是这个路径

2)使用listdir(path)可以获得目录下面的所有文件的目录列表。

#代码如下:
import os
print os.listdir(os.getcwd())
#执行结果如下:
[‘aa.py‘, ‘APP‘, ‘desktop.ini‘, ‘files‘]

3)创建新的目录可以使用mkdir(path)函数。

#代码如下:
import os
print os.mkdir(‘test‘)
#执行结果就是在当前路径下新建了一个目录,也可以指定全路径进行创建

删除目录时,只要将mkdir换成rmdir即可。

4)判断目录是否存在使用path.isdir(path)。

#代码如下
import os
print os.path.isdir(‘test‘)
#执行后,如果目录存在,则返回True,若不存在,则返回False。

判断是否是文件可以使用path.isfile(path)。

#代码如下
import os
print os.path.isfile(‘test‘)

———————— 本文至此结束,感谢阅读 ————————

以上是关于在Python中对文件和目录进行操作的主要内容,如果未能解决你的问题,请参考以下文章

python中对文件文件夹的操作需要涉及到os模块和shutil模块。

python 文件操作

Python学习笔记__9.3章 操作文件和目录

如何在 Python 中对大量字典进行排序而不加载到内存中

python中对文件的处理

python 文件 目录操作