python中的文件读写(open()函数、with open('file_directory','r') as f:、read()函数等)

时间:2021-07-05 00:46:27

python中也有文件读写,通过调用内置的读写函数。可以完成文件的打开/关闭、读、写入、追加等功能。

open()函数

open()函数为python中的打开文件函数,使用方式为:

f = open("[文件绝对路径]",'[文件使用模式') 以 f = open('/home/user/lina/info_lina.txt','r')为例,我们在linux环境中以r(只读模式)打开/home/user/lina/info_lina.txt的文件,此处路径也可以为相对路径,相对于本程序的路径。

>>> f =  open('/home/user/lina/info_lina.txt','r')
>>> print(f.read())
---- info of lina ----
Name : lina
age : 23
f.close() #在使用open函数打开文件时,使用完后记得关闭

with open() as f :

使用with open() as f : 相对于直接使用open()打开文件,会好用很多,你不用担心忘记调用f.close()关闭文件,会自动给你关闭。使用模式为:

with open('文件路径','使用模式') as f : 以 with open('/home/user/lina/info_lina.txt','w') as f : 为例,在linux环境下以w(读写模式)打开文件,该模式下如果文件存在就直接打开,如果不存在就创建文件。

with还可以同时打开多个文件,with open('file1') as obj1, open('file2') as obj2:

>>> with open('/home/user/lina/info_lina.txt','w') as f:
>>> f.write('\nJob : model')

其他的打开模式

打开方式 描述
r 只读模式,文件的指针将会放在文件的开头,为默认模式。只能用read()函数读
rb 同上,b表示以二进制格式打开
r+ 读写模式,打开一个文件可读可写。可用read()函数读,也可用write()写入
rb+ 二进制模式打开文件,读写模式
w 打开一个文件只用于写入,如果文件存在就覆盖,不存在就创建新文件。同理以上w+ wb+
a 打开一个文件往该文件的最后追加内容,所以指针在文件的末尾,同理当文件不存在时创建一个文件。同理a+ ab+

read()、read(size)、readline()、readlines()的区别和使用

我们都知道read()函数是打开文件后用来读取文件内容的。但是必须要注意的是read()函数会一次将文件内容全部读取到内存如果文件太大,你的内存就爆了!

  • 所以read()函数一般用与读小文件。
  • read(size)可以读取指定size字节的内容,常见在socket网络编程中,一个包大小为8192(即8K)当你读取内容传输时,最好小于这个大小,当然你可以重复调用read(size)读取完文件。
  • readline()每次会读取一行数据,同样可以循环调用该函数,直至读取完文件。
  • readlines()会一次性把文件读完,返回一个列表,每一行为列表中的一个元素,for line in f.readlines()可循环列表。同read()使用时注意文件大小。

强烈建议:读取文件时使用for line in f:这样的循环去读取,内容会一条一条的被读取到内存。

>>> for line in f:
... print(line)