python文件读取操作

python文件读取一共有如下几种模式:

'r'读模式
'w'写模式
'a'追加模式
'b'二进制模式(可添加到其他模式中使用)
'+'读或者写模式(可添加到其他模式中使用)

read()方法: 一次读取文件所有内容。
a.txt文件内容如下:  
hello,world! 
实例代码:
f=open("a.txt",'r')
a=f.read()
f.close()
print(a)

输出:hello,world!
read(3): 如果指定参数,例如read(3),那么只读取文件内容的前3个字符。
f=open("a.txt",'r')
a=f.read(3)
f.close()
print(a)

输出:hel

readline()方法: 一次读取文件内容的一行,换行符\n也包括。
a.txt内容如下:

2015
2016
2017

f=open("a.txt",'r')
a=f.readline()
b=f.readline()
f.close()
print(a,len(a))
print(b,len(b))

输出:
('2015\n', 5)
('2016\n', 5)
readlines()方法:一次读取文件中的所有行,并且把读取的内容作为列表返回
f=open("a.txt",'r')
a=f.readlines()
f.close()
print(a)

输出:['2015\n', '2016\n', '2017']
readlines方法和read虽然都是读取全部文件内容,但是还是有区别的,readlines方法会把文件内容的每一行作为列表的一个元素返回由整个文件内容组成的列表。

写文件:

write()方法: write方法的参数就是要写入的内容
f=open("a.txt",'w')
f.write("2017")
f.close()
如果当前目录没有a.txt文件,系统会自动在当前目录创建一个a.txt,不会报错,(但是如果是读模式的话,要读的文件必须存在,否则报错)。如果原来a.txt里面有文件内容,那么写入的内容会把原来的内容覆盖掉,本例中,程序运行后,a.txt文件内容为2017。如果不想覆盖原来文件的内容,只是在文件内容尾部追加,那么只需要把模式'w'换成'a',就可以了。

writelines()方法:writelines()方法和readlines()方法相反,传给它一个字符串列表,它会把所有的字符串写入文件。但是程序不会自己添加新的行,需要自己手动添加。(注意:没有writeline方法)
f=open("a.txt",'w')
f.writelines(['2017\n','2018\n','2019'])
f.close()
f=open("a.txt","r")
a=f.read()
print(a)

应该牢记使用close方法来关闭文件,但是这样可能会有些不方便,有可能程序没有运行到close这行代码的时候程序就崩溃了,导致文件没有关闭,有可能写入的内容会失效,所以我们如果要确保文件肯定被关闭了,需要使用try/finally语句
例如:
try:
    f=open("a.txt",'w')
    f.writelines(['2017\n','2018\n','2019'])
finally:
    f.close()
这样写的话,文件在任何情况下肯定会被关闭的。但是这样写有些麻烦,在python2.5之后的版本中,我们可以使用with....as....结构,例如:
with open("a.txt",'w') as f:
    f.writelines(['2017\n', '2018\n', '2019'])

这样我们连close()都不用写了,很方便!







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值