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)