python的文件操作

python中对文件的操作,三个步骤,open 后获得文件的句柄,获取到这个句柄后对文件进行读写操作,操作完成后关闭

1、open文件获取句柄

2、获取句柄后,对句柄进行操作

3、关闭文件

对文件的操作有如下动作:

读 :read()   readline()  readlines()

写:write()   writelines()

 

 

 

文件的read

f=open('testmiya.txt') #open文件,获取文件句柄,文件内容如上
fr=f.read()#read()读取出来的数据是str,读完后,文件指针移动到文件最后面
print(fr)
f.close()

  

 

文件的readline()

f=open('testmiya.txt') #open文件,获取文件句柄
fr=f.readline()  #readline()会随着指针的移动而读取的内容不同,一行一行读取
print('第一次读取',fr)

fr=f.readline()
print('第二次读取',fr)

f.close()

  

文件的readlines()

f=open('testmiya.txt') #open文件,获取文件句柄
fr=f.readlines()  #readlines()返回的是list
print('第一次读取',fr)
f.close()

  

 

 文件的write

文件的可读可写操作,取决在获取文件的句柄对象时决定的。open文件时,会指定使用 ‘r’ 或者‘w’的方式去获取,文件写,需要在以w的方式open文件,获取句柄。值得注意的是write只能写入字符串,如果是字典的情况下,需要dumps成json字符串

f=open('testmiya1.txt','w') #open文件,获取文件句柄    w方式打开获取句柄,当文件不存在时,会创建文件,当文件存在且里面有内容时,会覆盖原有的内容,慎用
fr=f.write('123456') 
f.close()

 

 

 文件的writelines()多行写入,写入到文件时是str 且 整体不分割的str

f=open('testmiya1.txt','w') #open文件,获取文件句柄
a=[1,2,3,4,5,6]     #如果list里面的元素是int类型,则会报错,提示参数必须是str,而不是int。因为write的本质只能写入字符串
f.writelines(a)
f.close()

  

f=open('testmiya1.txt','w') #open文件,获取文件句柄
a=['1','fdgs']  #list里面的元素为字符串

f.writelines(a)
f.close()

  

 

 上面我们谈到,open文件的时候,会有读写 和写读的方式,因不同所以获取的句柄的操作方法也会不一样,下面我们谈谈在open文件的时候的方法:

r:只读模式   文件以 r 方式打开的时候,文件指针在0的位置,且如果文件不存在会报错,缺陷是不能写

 

w:只写模式,文件以 w 方式打开的时候,文件指针在文件末尾的位置,如果文件不存在则重新创建文件,如果文件存在,则后面写入的内容覆盖原有的内容,文件指针始终在最后

 

a:追加模式,文件以 a 方式打开的时候,文件指针在文件末尾的位置,如果文件不存在则重新创建文件,如果文件存在,则在原有的文件的后面追加内容,文件指针始终在最后

 

 

上述的方式,都有一定的缺陷

r 只能读,不能写

w只能写,不能读

a 只能写,不能读

为了弥补上面的问题,python推出了

r+:读写模式,r的基础上添加了一个读的功能。继承了r的属性。读写模式,先读后写。open文件后,文件指针在0 ,添加内容进去文件后,文件指针在最后。(可读、可写、可追加)

这里多说一句,文件指针在0的位置,意味着会把整个文件的内容都获取到。

 

 

w+:写读模式,w的基础上添加了可读的功能,继承了w的属性,先写后读。写之前先将文件内容清空,整个文件的tell()=0,然后吧内容写进去文件,此时文件的指针会在最后     “重写”

 

a+:写读模式,a的基础上增加了可读的功能。我们知道,w只能先清空文件内容然后再将内容写进去文件,那既想保留原有的内容,又想把心的内容写进去,这个时候,a+给了便利。文件以a+方式打开文件,文件的指针在最后,写入新的内容后,文件指针又移动到了最后

 

 

posted @ 2018-09-05 17:26  花er壹樣的女人  阅读(204)  评论(0编辑  收藏  举报