自学Python:python中对文件的操作

python是一类脚本语言,经常被使用在自动化运维工作中,为运维工作提供了很大的便利,在运维工作中,经常需要对文件进行各种操作,因此,python提供了各种各样对文件的操作方法,我们来看一看吧。

文件的操作方法

方法功能
open()打开文件
close()关闭文件
read(size=-1)从文件中读取size个字符,如果没有指定size,则会读取剩余的所有字符,并且返回一个字符串
readline()从文件中读取一行,遇到换行符结束
write(str)将字符串str写入文件
writelines(seq)向文件中写入一个字符串序列seq,seq应该是一个返回字符串的可迭代对象
seek(offset, from)在文件中移动文件指针,从from(0表示起始位置,1表示当前位置,2表示文件末尾)偏移offset个位置
tell()返回当前文件指针在文件中的位置

打开文件

在python中使用open()打开文件并返回一个文件对象
我们可以在IDLE中使用help查看open()函数的各种参数以及使用说明
在这里插入图片描述
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
一般对于open()函数,我们主要使用前两个参数,第一个参数是传入的文件名,如果只有文件名,而没有路径的话,python会默认在当前目录中去找到该文件并打开,如果文件不存在呢,那就要看第二个参数了,第二个参数指定文件打开的模式:

打开模式执行操作
‘r’以只读方式打开文件(默认)
‘w’以写入方式打开文件,如果文件已经存在则会覆盖原文件内容,如果不存在则会直接创建
‘x’新建文件并以写入模式打开,如果文件已经存在,则会引发异常
‘a’以写入模式打开,如果文件已经存在,则在文件末尾追加写入
‘b’以二进制模式打开文件
‘t’以文本模式打开文件(默认)
‘+’可读写模式
‘U’通用换行符支持

使用open打开一个文件后,他会返回一个文件对象,拿到这个文件对象,就可以对该文件进行读取和修改
**我们先在E盘中新建一个txt文件(test.txt),并在文件中写入一些内容
f = open(‘E:/test.txt’)
**
在这里插入图片描述

关闭文件

由于python有垃圾回收机制,会在文件对象的引用计数为零的时候自动关闭文件,所以在python中,如果忘记关闭文件并不会像C语言那样造成内存泄漏的危险,但是,在python中,如果你对一个文件进行了写入操作,那么应该在写入操作完成后关闭文件,因为python可能会缓存你的数据,如果发生断电或者其他异常事件,就会造成那些数据不会写入文件当中,因此我们需要养成一个及时关闭文件的好习惯。
使用文件对象调用close函数关闭文件:f.close()

文件的读取和文件指针的定位

文件的读取方法有很多,可以使用文件对象的read()和readline()方法,也可以使用list(f)或者使用迭代的方式来读取,read()方法是按字节为单位来读取,如果不设置size的大小,则会读取文件中全部内容,读取完毕后,文件指针会指向文件的末尾,使用tell方法会知道文件指针现在的位置。


文件指针就相当于一个书签,在下次读取文件的时候,文件指针所在位置之前的内容将不会被读取到,我们可以使用seek()方法来调整文件指针的位置,seek(offset, from)有两个参数,表示从from偏移offset个字节,因此将文件指针设置到起始位置,使用seek(0, 0)即可。
在这里插入图片描述
readline()方法读取文件指针后的一整行内容,遇到换行符结束
在这里插入图片描述
对于文件读取,我们也可以将文件内容放到列表中并显示出来
list(f)

在这里插入图片描述
如果需要遍历文件中的每一行,我们可以直接对文件对象进行遍历,而不需要先将文件内容存入列表,再对列表进行遍历,这样的效率肯定是不高的
在这里插入图片描述

文件的写入

要向文件中写入数据,我们需要在打开文件的时候指定打开模式为’w’或者’a’模式,如果不指定写入模式的话,使用write或者writelines向文件中写入数据会报错,而且,我们如果以写入模式打开一个已经存在的文件,那么原文件中的内容会被全部删除。
在这里插入图片描述
在这里插入图片描述
此时数据并没有真正的写入文件当中,数据只是在内存中缓存着,我们需要在写入后对文件进行关闭,数据才会真正存入文件
在这里插入图片描述
可以看到,文件中之前的内容已经被全部删除,使用write方法写入的数据并没有写入文件,接下来我们使用close方法关闭文件

在这里插入图片描述

在这里插入图片描述
还有一个writelines方法,他可以讲一个返回字符串的可迭代序列写入文件当中
在这里插入图片描述
可以看到,我们直接使用write方法将一个返回字符串的列表写入文件会报错,接下来我们使用writelines方法
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值