在Python中对文件和目录进行操作
admin
2023-07-03 04:02:48
0

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

一、文件打开和关闭操作

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

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

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

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

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

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

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)常用的文件对象内建方法

文件对象的操作方法有很对,常用的方法总结如下:
在Python中对文件和目录进行操作

(5)目录操作

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

#代码如下:
import os
print os.getcwd()
#执行结果如下:
C:\Users\Administrator\Desktop          #因为我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')

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

相关内容

热门资讯

危急时刻,退役军人冲进车流救人 极目新闻通讯员 常梦星 游小亮5月30日中午12时许,武汉市武商商圈附近发生一起两辆电动车正面相撞的...
清华硕士做纹眉师1年多,最高月... 拥有中国传媒大学本科学历、清华大学美术学院硕士学位的广州90后Yoyo,如今是一名专业纹眉师。这份看...
“背手负鼠”火了,网友到处寻图... 这几天,很多人的聊天软件都被一个外形有点像老鼠的动物“承包”了。只见它面对窗外幽蓝的天空,负手而立,...
SpaceX被曝估值下调,马斯... 据美国彭博社29日援引知情人士的话报道,美国太空探索技术公司(SpaceX)正寻求在其首次公开募股(...
郑丽文横跨五大城访美,谢寒冰乐... 中国国民党主席郑丽文将于6月1日启程访问美国,由西向东横跨旧金山、纽约、波士顿、华府及洛杉矶等五大城...
视频丨首次突破、刷新纪录!本周... 本周我国在航天、基建、工程等领域迎来突破从地下到太空从大国重器到汽车工业中国硬核实力接连刷新历史神舟...
上海“僵尸房”复活记:卖不掉的... 在房地产从业者的行话里,有一个并不正式却颇为形象的词——“僵尸房”。没有人能给出它的准确定义,更没人...
网红“悍马糖”被查 近日,据江苏南京《金陵警事》报道:看似普通糖果,号称“增强精力”,实则暗藏致命风险。南京秦淮警方成功...
灶具打不着火原因 1、如果灶具进入了过压保护的时候,灶具是不会打火启动的,所以这样就会导致灶具打不着火的问题发生。2、...
灶一边打不着火 1、可能是由于一边的打火针上面比较脏,出现点火针跑偏的现象。2、也有可能是由于打火的时候,打不着火的...