python 读写文件方法

方法一、

用open()的方法(open()返回一个文件对象,它是可迭代的)

f = open('test.txt',’r‘) 

r表示文本文件,rb是二进制文件,默认r
若文件不存在,则该函数会抛出一个IOError的错误,如下:

>>> f = open('test.txt','r') 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

最后,文件使用完后必须关闭,否则文件对象会一直占用操作系统的资源,关闭用:

f.close()

但是这种做法有一些隐患,比如文件读写的时候就可能出现IOError,一旦出错,后面的f.close()就不会调用。

方法二、

为了保证读取过程中是否出错都能正确地关闭文件,我们可以使用try…finally异常处理机制来实现:

try:
	f = open('test.txt','r')
	print(f.read()) #do anything you want
finally:
	if f:
		f.close()

问题解决了,但是写法有点繁琐

方法三、

这是最常用的方法,也是最推荐的

with open('test.txt','r') as f:
	print(f.read())

python的文件对象提供了三个方法:read()readline()readlines()
每种方法都可以接受一个变量以限制每次读取的数据量。

  • read() :每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。为了避免文件大于可用内存的情况出现,可以反复调用read(size)方法,即每次最多读取size个字节的内容。
  • readlines() : 像 .read() 一样,readlines()一次读取整个文件,但.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for … in … 结构进行处理。
  • readline() : 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。

注意:这三种方法是把每行末尾的’\n’也读进来了,它并不会默认的把’\n’去掉,需要我们手动去掉。如:

with open('test.txt','r') as f:
	mlist = f.readlines()
	#此时mlist = ['111\n', '222\n', '333\n', '444\n']
	for i in range(len(mlist)):
		mlist[i] = mlist[i].rstrip('\n') 
	#此时mlist = ['111', '222', '333', '444']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值